def write_parcel_output(self, add_xy=None): """ Write the parcel-level output to a csv file Parameters ---------- add_xy : dictionary (optional) Used to add x, y values to the output - an example dictionary is pasted below - the parameters should be fairly self explanatory. Note that from_epsg and to_epsg can be omitted in which case the coordinate system is not changed. NOTE: pyproj is required if changing coordinate systems:: { "xy_table": "parcels", "foreign_key": "parcel_id", "x_col": "x", "y_col": "y", "from_epsg": 3740, "to_epsg": 4326 } Returns ------- Nothing """ if self.parcel_output is None: return po = self.parcel_output if add_xy is not None: x_name, y_name = add_xy["x_col"], add_xy["y_col"] xy_joinname = add_xy["foreign_key"] xy_df = sim.get_table(add_xy["xy_table"]) po[x_name] = misc.reindex(xy_df[x_name], po[xy_joinname]) po[y_name] = misc.reindex(xy_df[y_name], po[xy_joinname]) if "from_epsg" in add_xy and "to_epsg" in add_xy: import pyproj p1 = pyproj.Proj('+init=epsg:%d' % add_xy["from_epsg"]) p2 = pyproj.Proj('+init=epsg:%d' % add_xy["to_epsg"]) x2, y2 = pyproj.transform(p1, p2, po[x_name].values, po[y_name].values) po[x_name], po[y_name] = x2, y2 po.to_csv(self.parcel_indicator_file, index_label="development_id")
def ave_sqft_per_unit(parcels, nodes, settings): if len(nodes) == 0: # if nodes isn't generated yet return pd.Series(index=parcels.index) s = misc.reindex(nodes.ave_sqft_per_unit, parcels.node_id) clip = settings.get("ave_sqft_per_unit_clip", None) if clip is not None: s = s.clip(lower=clip['lower'], upper=clip['upper']) return s
def zone_id(jobs, buildings): return misc.reindex(buildings.zone_id, jobs.building_id)
def node_id(jobs, buildings): return misc.reindex(buildings.node_id, jobs.building_id)
def node_id(households, buildings): return misc.reindex(buildings.node_id, households.building_id)
def lot_size_per_unit(buildings, parcels): return misc.reindex(parcels.lot_size_per_unit, buildings.parcel_id)
def zone_id(buildings, parcels): return misc.reindex(parcels.zone_id, buildings.parcel_id)
def node_id(buildings, parcels): return misc.reindex(parcels.node_id, buildings.parcel_id)