initial
This commit is contained in:
71
runallgeom.py
Normal file
71
runallgeom.py
Normal file
@@ -0,0 +1,71 @@
|
||||
import time
|
||||
import requests
|
||||
import json
|
||||
import psycopg2
|
||||
import psycopg2.extensions
|
||||
from psycopg2.extras import Json
|
||||
|
||||
|
||||
conn = psycopg2.connect(host='127.0.0.1', database='nws', user='nws', password='nws')
|
||||
cursor = conn.cursor()
|
||||
|
||||
|
||||
|
||||
|
||||
updates = ['UPDATE public.cams SET geom = ST_SetSRID(ST_MakePoint(lon, lat), 4326)',
|
||||
'UPDATE public.cams SET county = county.countyname from public.county WHERE ST_Contains(county.geom,cams.geom)',
|
||||
'UPDATE public.cams SET pzone = pzone.state_zone from public.pzone WHERE ST_Contains(pzone.geom,cams.geom)',
|
||||
'UPDATE public.cams SET fzone = fzone.state_zone from public.fzone WHERE ST_Contains(fzone.geom,cams.geom)',
|
||||
'UPDATE public.cams SET cwa = fzone.cwa from public.fzone WHERE ST_Contains(fzone.geom,cams.geom)',
|
||||
'UPDATE public.cams SET zonename = pzone.shortname from public.pzone WHERE ST_Contains(pzone.geom,cams.geom)',
|
||||
'UPDATE public.cams SET state = county.state from public.county WHERE ST_Contains(county.geom,cams.geom)']
|
||||
|
||||
for i in updates:
|
||||
cursor.execute(i)
|
||||
|
||||
|
||||
|
||||
conn.commit()
|
||||
|
||||
|
||||
|
||||
headers = {
|
||||
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
|
||||
}
|
||||
|
||||
cursor.execute("SELECT camid, lon, lat from cams WHERE elevation ISNULL")
|
||||
allcams = cursor.fetchall()
|
||||
|
||||
|
||||
|
||||
def get_elev(lon,lat):
|
||||
sql = "SELECT round(ST_Value(rast, ST_SetSRID(ST_MakePoint(%s,%s),4326)) * 3.28084) AS val FROM dem WHERE ST_Intersects(rast, ST_SetSRID(ST_MakePoint(%s,%s),4326))"
|
||||
vars = (lon,lat,lon,lat)
|
||||
cursor.execute(sql,vars)
|
||||
elev = cursor.fetchone()
|
||||
print(elev)
|
||||
if (elev != None):
|
||||
return int(elev[0])
|
||||
if (elev == None):
|
||||
elev = get_elev_backup(lon,lat)
|
||||
print('backup: ' +str(elev))
|
||||
return int(elev)
|
||||
|
||||
def get_elev_backup(lon,lat):
|
||||
baseurl = 'https://nationalmap.gov/epqs/pqs.php?x={}&y={}&units=Feet&output=json'.format(lon,lat)
|
||||
r = requests.get(baseurl, timeout=3,headers=headers)
|
||||
if r.status_code == 200:
|
||||
returns = r.json()
|
||||
elev = returns.get('USGS_Elevation_Point_Query_Service').get('Elevation_Query').get('Elevation')
|
||||
return elev
|
||||
|
||||
|
||||
|
||||
for cam in allcams:
|
||||
camid, lon, lat = cam
|
||||
elev = get_elev(lon,lat)
|
||||
val = (elev,camid)
|
||||
sql = "UPDATE cams SET elevation= %s WHERE camid = %s"
|
||||
cursor.execute(sql,val)
|
||||
conn.commit()
|
||||
|
||||
Reference in New Issue
Block a user