xdenisx

iapb2postgis

Aug 23rd, 2013
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. import psycopg2
  2. import sys
  3. import datetime
  4.  
  5. try:
  6.     conn = psycopg2.connect(database='gis', user='gisuser')
  7.     curs = conn.cursor()
  8.  
  9. #    try:
  10. #        # Try create db for IAPB data
  11. #        curs.execute("""CREATE TABLE iapb (id integer, date date, geom geometry)""")
  12. #        conn.commit()  
  13. #    except:
  14. #        print 'The table already exist!'
  15.  
  16.     ff_in = sys.argv[1]
  17.     ff = open(ff_in, 'r')
  18.     lines = ff.readlines()
  19.  
  20.     for line in lines:
  21.         year, mon, day, hh, id, lat, lon = (line.replace('\n','')).split()
  22.         #print 'Year: %s Month: %s Day: %s Hour: %s ID: %s lat: %s lon: %s' % (year, mon, day, hh, id, lat, lon)
  23.         if int(mon)<10:
  24.             mon = '0' + mon
  25.         if int(day)<10:
  26.             day = '0' + day
  27.         if int(hh)<10:
  28.             hh = '0' + hh
  29.         try:
  30.             dt_str = '%s-%s-%s %s:00' % (year, mon, day, hh)  
  31.             idate = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M')
  32.             #print idate, id
  33.             try:
  34.                 sql = "INSERT INTO iapb (id,date,geom) VALUES (%s,%s,ST_GeomFromText(%s));"
  35.                 params = [int(id),dt_str,'POINT( %s %s )' % (lon,lat)]
  36.                 try:
  37.                     if int(hh)==0:
  38.                         curs.execute(sql, params)
  39.                         conn.commit()
  40.                 except:
  41.                     print "Execute insert error!"
  42.                
  43.             except:
  44.                 print 'Insert error!'  
  45.  
  46.            
  47.         except:
  48.             print 'Date formating error!'
  49.     conn.close()
  50.     ff.close()
  51.  
  52. except:
  53.     print 'Connect error!'
Add Comment
Please, Sign In to add comment