Ejemplo n.º 1
0
def batch_geocode(l_adress, kind='arcgis'):
    if kind == 'arcgis':
        gis = GIS("http://www.arcgis.com", username=username, password=pwd)
        # use the first of GIS's configured geocoders
        geocoder = get_geocoders(gis)[0]
        results = batch_geocode(l_adress)
        lats = [r['location']['x'] for r in results]
        lngs = [r['location']['y'] for r in results]
        return lats, lngs
Ejemplo n.º 2
0
from arcgis import gis, geocoding
from airflow.models import Variable
from airflow.hooks.postgres_hook import PostgresHook

ago = gis.GIS("https://detroitmi.maps.arcgis.com", Variable.get('AGO_USER'),
              Variable.get('AGO_PASS'))

geocoders = {
    'composite': geocoding.get_geocoders(ago)[0],
    'address': geocoding.get_geocoders(ago)[1],
    'centerline': geocoding.get_geocoders(ago)[2]
}


def geocode_rows(**kwargs):
    from arcgis import geocoding
    # Expected **kwargs:
    # table: name of table to geocode
    # address_column: name of address column or expression
    # geometry_column: name of geometry column
    # parcel_column: name of parcel column
    # where: a Postgres clause to restrict which rows get geocoded
    # geocoder: enum ['composite', 'address', 'centerline']. default to composite

    hook = PostgresHook('etl_postgres')

    # default where clause
    where = kwargs['where'] if 'where' in kwargs.keys() else "1 = 1"
    geocoder = kwargs['geocoder'] if 'geocoder' in kwargs.keys(
    ) else 'composite'
Ejemplo n.º 3
0
 log.write("----------------------------" + "\n")
 log.write("----------------------------" + "\n")
 log.write("Log: " + str(d) + "\n")
 log.write("\n")
 # Start process...
 starttime = datetime.datetime.now()
 log.write("Begin process:\n")
 log.write("     Process started at " + str(starttime) + "\n")
 log.write("\n")
 '''
 Sign into ArcGIS Online    
 '''
 gis = GIS(url='https://www.arcgis.com',
           username='******',
           password='******')
 geocoder = get_geocoders(gis)[0]
 '''
 INPUT TABLES
 '''
 facilitiesdf = pd.read_excel(
     r'D:\Projects\TCHD\TCHD_spyder\Facilities.xlsx')
 septicdf = pd.read_excel(r'D:\Projects\TCHD\TCHD_spyder\Septic.xlsx')
 '''
 DEFINE INPUT FUNCTIONS TO GET X,Y
 '''
 def getxlonfacilites(arow):
     if pd.isnull(arow['GIS_LONGITUDE']) or arow['GIS_LONGITUDE'] == -1:
         addr = "%s %s %s %s %s, %s %s" % (
             int(arow['STREET_NUMBER']), arow['STREET_DIRECTION'],
             arow['STREET_NAME'], arow['STREET_TYPE'], arow['CITY'],
             arow['STATE'], arow['ZIP'])