Changeset 3290

Show
Ignore:
Timestamp:
05/02/08 17:44:41 (3 months ago)
Author:
lmwang
Message:

(lmwang)rename psrc/variables to psrc/abstract_variables; optimized travel data calculation by using array operation instead of loop

Location:
trunk/psrc
Files:
16 modified
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/psrc/abstract_variables/abstract_time_space_prism_variable.py

    r3282 r3290  
    5555         
    5656        if self.direction_from_agent_to_choice: 
    57             from_zone = var1 
    58             to_zone = var2 
     57            from_zone = var1.astype("int32") 
     58            to_zone = var2.astype("int32") 
    5959        else: 
    60             from_zone = var2 
    61             to_zone = var1 
    62              
     60            from_zone = var2.astype("int32") 
     61            to_zone = var1.astype("int32") 
     62     
    6363        results = resize(array([self.default_value], dtype=self._return_type), from_zone.shape) 
    6464        zone_ids = zones.get_id_attribute() 
     
    6868            t2 = travel_data_attr_mat[tmp_zone, to_zone] 
    6969            results[where( t1 + t2 <= agent_resource)] += zones.get_attribute_by_id(self.zone_attribute_to_access, zone) 
    70                  
     70         
     71        missing_pairs_index = travel_data.get_od_pair_index_not_in_dataset(from_zone, to_zone) 
     72        if missing_pairs_index[0].size > 0: 
     73            results[missing_pairs_index] = self.default_value 
     74            logger.log_warning("zone pairs at index %s are not in travel data; value set to %s." % ( str(missing_pairs_index), self.default_value) ) 
     75 
    7176        return results 
  • trunk/psrc/abstract_variables/abstract_travel_time_variable.py

    r446 r3290  
    3434        interaction_dataset = self.get_dataset() 
    3535        travel_data = dataset_pool.get_dataset('travel_data') 
     36        travel_data_attr_mat = travel_data.get_attribute_as_matrix(self.travel_data_attribute,  
     37                                                                   fill=self.default_value) 
     38         
    3639        var1 = interaction_dataset.get_dataset(1).get_attribute_by_index(self.agent_zone_id, 
    3740                                                                      interaction_dataset.get_2d_index_of_dataset1()) 
    3841        var2 = interaction_dataset.get_2d_dataset_attribute(self.location_zone_id) 
    3942        if self.direction_from_home: 
    40             home_zone = var1 
    41             work_zone = var2 
     43            home_zone = var1.astype("int32") 
     44            work_zone = var2.astype("int32") 
    4245        else: 
    43             home_zone = var2 
    44             work_zone = var1 
    45         times = resize(array([self.default_value], dtype=float32), home_zone.shape) 
    46         positions = ones(home_zone.shape, dtype="int32") 
    47         #create indices for 2d array of (origin, destination) 
    48         ij = map(lambda x, y: (x, y), where(positions)[0], where(positions)[1]) 
    49         for a in ij: 
    50             i, j = a 
    51             try: 
    52                 times[i,j] = travel_data.get_attribute_by_id(self.travel_data_attribute, (home_zone[i,j], work_zone[i,j])) 
    53             except: 
    54                 logger.log_warning("zone pairs (%s, %s) is not in zoneset; value set to %s." % (home_zone[i,j], work_zone[i,j], self.default_value)) 
    55  
    56         return times 
     46            home_zone = var2.astype("int32") 
     47            work_zone = var1.astype("int32") 
     48         
     49        results = resize(array([self.default_value], dtype=float32), home_zone.shape) 
     50        results = travel_data_attr_mat[home_zone, work_zone] 
     51         
     52        missing_pairs_index = travel_data.get_od_pair_index_not_in_dataset(home_zone, work_zone) 
     53        if missing_pairs_index[0].size > 0: 
     54            results[missing_pairs_index] = self.default_value 
     55            logger.log_warning("zone pairs at index %s are not in travel data; value set to %s." % ( str(missing_pairs_index), self.default_value) ) 
     56         
     57        return results 
  • trunk/psrc/household_x_gridcell/workerDDD_am_total_transit_time_walk_from_home_to_work.py

    r446 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class workerDDD_am_total_transit_time_walk_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_gridcell/workerDDD_travel_time_hbw_am_drive_alone_from_home_to_work.py

    r446 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class workerDDD_travel_time_hbw_am_drive_alone_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_parcel/am_total_transit_time_walk_from_home_to_work.py

    r969 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class am_total_transit_time_walk_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_parcel/travel_time_hbw_am_drive_alone_from_home_to_work.py

    r969 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class travel_time_hbw_am_drive_alone_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_parcel/workerDDD_am_total_transit_time_walk_from_home_to_work.py

    r969 r3290  
    1212# other acknowledgments. 
    1313# 
    14 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     14from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1515 
    1616class workerDDD_am_total_transit_time_walk_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_parcel/workerDDD_travel_time_hbw_am_drive_alone_from_home_to_work.py

    r969 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class workerDDD_travel_time_hbw_am_drive_alone_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_zone/am_total_transit_time_walk_from_home_to_work_alt.py

    r446 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class am_total_transit_time_walk_from_home_to_work_alt(abstract_travel_time_variable): 
  • trunk/psrc/household_x_zone/travel_time_hbw_am_drive_alone_from_home_to_work_alt.py

    r446 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class travel_time_hbw_am_drive_alone_from_home_to_work_alt(abstract_travel_time_variable): 
  • trunk/psrc/household_x_zone/workerDDD_am_total_transit_time_walk_from_home_to_work.py

    r446 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class workerDDD_am_total_transit_time_walk_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/household_x_zone/workerDDD_travel_time_hbw_am_drive_alone_from_home_to_work.py

    r446 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class workerDDD_travel_time_hbw_am_drive_alone_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/person_x_job/am_total_transit_time_walk_from_home_to_work.py

    r969 r3290  
    1313# 
    1414 
    15 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     15from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1616 
    1717class am_total_transit_time_walk_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/person_x_job/travel_time_hbw_am_drive_alone_from_home_to_work.py

    r969 r3290  
    1212# other acknowledgments. 
    1313# 
    14 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     14from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1515 
    1616class travel_time_hbw_am_drive_alone_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/person_x_zone/am_total_transit_time_walk_from_home_to_work.py

    r969 r3290  
    1212# other acknowledgments. 
    1313# 
    14 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     14from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1515 
    1616class am_total_transit_time_walk_from_home_to_work(abstract_travel_time_variable): 
  • trunk/psrc/person_x_zone/travel_time_hbw_am_drive_alone_from_home_to_work.py

    r969 r3290  
    1212# other acknowledgments. 
    1313# 
    14 from psrc.variables.abstract_travel_time_variable import abstract_travel_time_variable 
     14from psrc.abstract_variables.abstract_travel_time_variable import abstract_travel_time_variable 
    1515 
    1616class travel_time_hbw_am_drive_alone_from_home_to_work(abstract_travel_time_variable):