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
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)
def load_esri_source(url): ''' ''' return list(esridump.EsriDumper(url))