Exemple #1
0
 def compute(self,  dataset_pool):
     parcels = self.get_dataset()
     templates = dataset_pool.get_dataset('development_template')
     template_components = dataset_pool.get_dataset('development_template_component')
     proposals = create_from_parcel_and_development_template(
                                 parcels, templates, 
                                 filter_attribute="has_vacant_land=urbansim_parcel.parcel.vacant_land_area > 0",
                                 proposed_units_variable="psrc_parcel.development_project_proposal.units_proposed_plus_minimum_1DU_per_legal_lot_yield",
                                 dataset_pool=dataset_pool, resources=None)
     dataset_pool.replace_dataset('development_project_proposal', proposals)
     self.add_and_solve_dependencies([
     "_max_capacity = parcel.aggregate(urbansim_parcel.development_project_proposal.land_area_taken * (development_project_proposal.disaggregate(land_use_type.generic_land_use_type_id, intermediates=[development_template])==%s), function=maximum)" % self.glu
             ])
     return parcels["_max_capacity"]
 if template_filter is not None:
     try:
         index2 = where(templates.compute_variables(template_filter))[0]
     except Exception, e:
         logger.log_warning( "template_filter is set to %s, but there is an error when computing it: %s"
                            % (template_filter, e) )
         index2 = None
 else:
     index2 = None
     
 if create_proposal_set:
     logger.start_block("Creating proposals for new development")
     proposal_set = create_from_parcel_and_development_template( parcels, templates, 
                                                       filter_attribute=self.filter,
                                                       parcel_index = index1,
                                                       template_index = index2,
                                                       proposed_units_variable=proposed_units_variable,
                                                       dataset_pool=dataset_pool,
                                                       resources = kwargs.get("resources", None) )
     proposal_set.add_attribute( zeros(proposal_set.size(), dtype=int16), "is_redevelopment", AttributeType.PRIMARY )
     # Line added by Jesse Ayers, MAG, 7/20/2009
     # adding a primary attribute to catch a later computation
     proposal_set.add_attribute( zeros(proposal_set.size(), dtype=int32), "total_land_area_taken", AttributeType.PRIMARY )
     logger.end_block()
     '''if parcel_filter_for_redevelopment is not None:
         logger.start_block("Creating proposals for re-development")
         buildings = dataset_pool.get_dataset('building')
         land_area = buildings.get_attribute("land_area").copy()
         parcels.compute_variables(parcel_filter_for_redevelopment, dataset_pool=dataset_pool)
         is_redevelopment = parcels.get_attribute( parcel_filter_for_redevelopment) > 0
         buildings_parcel_ids = buildings.get_attribute( "parcel_id" )
                index2 = where(templates.compute_variables(template_filter))[0]
            except Exception, e:
                logger.log_warning(
                    "template_filter is set to %s, but there is an error when computing it: %s"
                    % (template_filter, e))
                index2 = None
        else:
            index2 = None

        if create_proposal_set:
            logger.start_block("Creating proposals for new development")
            proposal_set = create_from_parcel_and_development_template(
                parcels,
                templates,
                filter_attribute=self.filter,
                parcel_index=index1,
                template_index=index2,
                proposed_units_variable=proposed_units_variable,
                dataset_pool=dataset_pool,
                resources=kwargs.get("resources", None))
            proposal_set.add_attribute(zeros(proposal_set.size(),
                                             dtype=int16), "is_redevelopment",
                                       AttributeType.PRIMARY)
            # Line added by Jesse Ayers, MAG, 7/20/2009
            # adding a primary attribute to catch a later computation
            proposal_set.add_attribute(zeros(proposal_set.size(), dtype=int32),
                                       "total_land_area_taken",
                                       AttributeType.PRIMARY)
            logger.end_block()
            '''if parcel_filter_for_redevelopment is not None:
                logger.start_block("Creating proposals for re-development")