Exemplo n.º 1
0
    def _state_place_area(self, method, fields, state, place, year=None, return_geometry=False):
        if year is None:
            year = self.default_year
        
        search_query = "PLACE='{}' AND STATE={}".format(place, state)
        place_dumper = esridump.EsriDumper(GEO_URLS['incorporated places'][year],
                                           extra_query_args = {'where' : search_query,
                                                               'orderByFields': 'OID'})

        place = next(iter(place_dumper))
        logging.info(place['properties']['NAME'])
        place_geojson = place['geometry']

        areas = method(fields, place_geojson, year)

        features = []
        for i, (feature, result) in enumerate(areas):
            if return_geometry:
                feature['properties'].update(result)
                features.append(feature)
             else:
                features.append(result)
            if i % 100 == 0:
                logging.info('{} features'.format(i))

        if return_geometry:
            return {'type': "FeatureCollection", 'features': features}
        else:
            return features
def iterate_features(filename):
    ''' Generate a stream of features for disasters.
    '''
    with open(filename) as file:
        for source in csv.DictReader(file):
            print('Reading {name} from {group}'.format(**source),
                  file=sys.stderr)
            for feature in esridump.EsriDumper(source['url']):
                yield feature
Exemplo n.º 3
0
    def __init__(self, geojson_geometry, sub_geography_url):
        self.geo = shapely.geometry.shape(geojson_geometry)

        geo_query_args = {'geometry': ','.join(str(x) for x in self.geo.bounds),
                          'geometryType': 'esriGeometryEnvelope',
                          'spatialRel': 'esriSpatialRelEnvelopeIntersects',
                          'inSR' : '4326',
                          'geometryPrecision' : 9,
                          'orderByFields': 'OID'}
        self.area_dumper = esridump.EsriDumper(sub_geography_url,
                                               extra_query_args = geo_query_args)
Exemplo n.º 4
0
def load_esri_source(url):
    '''
    '''
    return list(esridump.EsriDumper(url))