Ignore:
Timestamp:
01/12/06 18:26:25 (13 years ago)
Author:
selatham
Message:

Do a bit of lat/lon parsing. Actually ingests now

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/trunk/ingestAutomation/OAIBatch/SpaceTimeIngestFromMOLES.py

    r1794 r1797  
    1010 
    1111def id_exists(Mid): 
    12         sql = "select id from spatio where id = '"+Mid+"';" 
     12        sql = "select id from spatiotemp where id = '"+Mid+"';" 
    1313        cursor = connection.cursor() 
    1414        cursor.execute(sql) 
     
    1919 
    2020 
    21 def do_insert(Mid,west,south,east,north): 
    22         sql = "INSERT INTO spatio (id, coordinates) VALUES ( "+Mid+ ", sbox'(("+west+"d , "+south+"d), ("+east+"d , "+north+"d))' );" 
     21def do_insert(Mid,west,south,east,north,startdate,enddate): 
     22        sql = "INSERT INTO spatiotemp (id, coordinates, startdate, enddate) VALUES ( '"+Mid+ "', sbox'(("+west+"d , "+south+"d), ("+east+"d , "+north+"d))', '"+startdate+"', '"+enddate+"');" 
     23        print sql 
    2324        cursor = connection.cursor() 
    2425        cursor.execute(sql) 
     26        connection.commit() 
    2527 
    26 def do_update(Mid,west,south,east,north): 
    27         sql = "UPDATE spatio SET coordinates = sbox'(("+west+"d , "+south+"d), ("+east+"d , ".north+"d))' WHERE id="+Mid+";" 
     28def do_update(Mid,west,south,east,north,startdate,enddate): 
     29        sql = "UPDATE spatiotemp SET coordinates = sbox'(("+west+"d , "+south+"d), ("+east+"d , "+north+"d))', startdate='"+startdate+"', enddate= '"+enddate+"' WHERE id='"+Mid+"';" 
     30        print sql 
    2831        cursor = connection.cursor() 
    29         cursor.execute(sql) 
     32        cursor.execute(sql)      
     33        connection.commit() 
    3034 
    31 def main(args=None): 
    32     indir= sys.argv[1] 
     35def main(indir): 
    3336    if indir == "": 
    3437        sys.exit("Usage: argument 1 = full path of directory where MOLES records reside") 
     
    3639        print "INFO: moles records are in %s" %indir 
    3740    numfilesproc = 0 
    38  
    39  
    40     #does record already exist in db? 
    41     #select_string="select a.fld_data_provider_local_id from ndgb.tbl_data_entities as a where a.fld_data_provider_id='%s'" %repositoryID 
    42     #cursor     = connection.cursor() 
    43     #cursor.execute(select_string) 
    44     #all_ids = cursor.fetchall() 
    45     #reccount= len(all_ids) 
    4641 
    4742    filenames = os.listdir(indir) 
     
    5449                dates=dgMeta.dgMetadataRecord.dgDataEntity.dgDataSummary.dgDataCoverage.dgTemporalCoverage.DateRange 
    5550                coverage= [dates.DateRangeEnd, dates.DateRangeStart, bbox.LimitNorth, bbox.LimitSouth,bbox.LimitEast, bbox.LimitWest] 
    56                 Mid = dgMeta.dgMetadataRecord.dgMetadataID.repositoryIdentifier+"__"+dgMeta.dgMetadataRecord.dgMetadataID.localIdentifier 
     51                #Mid = dgMeta.dgMetadataRecord.dgMetadataID.repositoryIdentifier+"__"+dgMeta.dgMetadataRecord.dgMetadataID.localIdentifier 
     52                Mid = filename 
    5753                print coverage, Mid 
     54                #parse the coordinates somewhat 
     55                #west 
     56                west = bbox.LimitWest.strip() 
     57                if west.endswith('E'): 
     58                    west=bbox.LimitWest.split('E')[0] 
     59                elif west.endswith('W'): 
     60                    if west.startswith('-'): 
     61                        west = bbox.LimitWest.split('W')[0] 
     62                    else: 
     63                        west = "-" +bbox.LimitWest.split('W')[0] 
     64                try: 
     65                    float(west) 
     66                except: 
     67                    print "Error: Will not process File %s. Contains incorrect West bounding box limit." %full_filename 
     68                    continue 
     69                print "West = %s" %west 
     70                #east 
     71                east = bbox.LimitEast.strip() 
     72                if east.endswith('E'): 
     73                    east=bbox.LimitEast.split('E')[0] 
     74                elif east.endswith('W'): 
     75                    if east.startswith('-'): 
     76                        east = bbox.LimitEast.split('W')[0] 
     77                    else: 
     78                        east = "-" +bbox.LimitEast.split('W')[0] 
     79                try: 
     80                    float(east) 
     81                except: 
     82                    print "Error: Will not process File %s. Contains incorrect East bounding box limit." %full_filename 
     83                    continue 
     84                print "East = %s" %east 
     85                #north 
     86                north = bbox.LimitNorth.strip() 
     87                if north.endswith('N'): 
     88                    north=bbox.LimitNorth.split('N')[0] 
     89                elif north.endswith('S'): 
     90                    if north.startswith('-'): 
     91                        north = bbox.LimitNorth.split('S')[0] 
     92                    else: 
     93                        north = "-" +bbox.LimitNorth.split('S')[0] 
     94                try: 
     95                    float(north) 
     96                except: 
     97                    print "Error: Will not process File %s. Contains incorrect North bounding box limit." %full_filename 
     98                    continue 
     99                print "North = %s" %north 
     100                #south 
     101                south = bbox.LimitSouth.strip() 
     102                if south.endswith('N'): 
     103                    south=bbox.LimitSouth.split('N')[0] 
     104                elif south.endswith('S'): 
     105                    if south.startswith('-'): 
     106                        south = bbox.LimitSouth.split('S')[0] 
     107                    else: 
     108                        south = "-" +bbox.LimitSouth.split('S')[0] 
     109                try: 
     110                    float(south) 
     111                except: 
     112                    print "Error: Will not process File %s. Contains incorrect North bounding box limit." %full_filename 
     113                    continue 
     114                print "North = %s" %south 
    58115 
    59116                if id_exists( Mid ): 
    60117                        print "doc %s exists, updating\n" %Mid 
    61                         do_update( Mid, bbox.LimitWest, bbox.LimitSouth, bbox.LimitEast, bbox.LimitNorth ) 
     118                        do_update( Mid, west, south, east, north, dates.DateRangeStart, dates.DateRangeEnd ) 
    62119                else: 
    63120                        print "doc %s does not exist, inserting new record\n" %Mid 
    64                         do_insert( Mid, bbox.LimitWest, bbox.LimitSouth, bbox.LimitEast, bbox.LimitNorth ) 
     121                        do_insert( Mid, west, south, east, north, dates.DateRangeStart, dates.DateRangeEnd ) 
    65122 
    66123                numfilesproc += 1 
     
    70127 
    71128if __name__=='__main__': 
    72     main() 
     129    indir=sys.argv[1] 
     130    main(indir) 
Note: See TracChangeset for help on using the changeset viewer.