def jobs_within_30_min(jobs, travel_data): from urbansim.utils import misc j = pd.DataFrame({'zone_id': jobs.zone_id}) td = travel_data.to_frame() zone_ids = np.unique(td.reset_index().to_zone_id) return misc.compute_range(td, j.groupby('zone_id').size().reindex(index=zone_ids).fillna(0), "am_auto_total_time", 30, agg=np.sum)
def jobs_within_30_min(jobs, travel_data, zone_ids): travel_data = travel_data.to_frame() jobs = jobs.to_frame(columns=['zone_id']) return misc.compute_range( travel_data, jobs.groupby('zone_id').size().reindex(index=zone_ids).fillna(0), "am_single_vehicle_to_work_travel_time", 30, agg=np.sum)
def population_within_15_min(households, travel_data, zone_ids): travel_data = travel_data.to_frame() households = households.to_frame(columns=['persons', 'zone_id']) return misc.compute_range( travel_data, households.groupby('zone_id').persons.sum().reindex( index=zone_ids).fillna(0), "am_single_vehicle_to_work_travel_time", 15, agg=np.sum)
def column_func(zones, beam_skims): results = misc.compute_range( beam_skims.to_frame(), zones.get_column(variable_to_summarize), impedance_measure, distance, agg=np.sum) if log: results = results.apply(eval('np.log1p')) if len(results) < len(zones): results = results.reindex(zones.index).fillna(0) return results
def column_func(zones): df = skims_table.to_frame() results = misc.compute_range(df, zones.get_column(variable_to_summarize), impedance_measure, distance, agg=agg) if len(results) < len(zones): results = results.reindex(zones.index).fillna(0) # add vars from orig zone, typically not included in skims results = results + zones[variable_to_summarize] if log: results = results.apply(eval('np.log1p')) return results
def population_within_15_min(households, travel_data, zone_ids): travel_data = travel_data.to_frame() households = households.to_frame(columns = ['persons', 'zone_id']) return misc.compute_range(travel_data, households.groupby('zone_id').persons.sum().reindex(index = zone_ids).fillna(0), "am_single_vehicle_to_work_travel_time", 15, agg=np.sum)
def jobs_within_30_min(jobs, travel_data, zone_ids): travel_data = travel_data.to_frame() jobs = jobs.to_frame(columns = ['zone_id']) return misc.compute_range(travel_data, jobs.groupby('zone_id').size().reindex(index = zone_ids).fillna(0), "am_single_vehicle_to_work_travel_time", 30, agg=np.sum)