Displaying differences for changeset
 
display as  

nbproject/private/private.xml

@@ -24,6 +24,8 @@
             <file>file:/od/projects/csip-all/csip-example/test/service_tests/externalexe/STest.java</file>
         </group>
         <group>
+            <file>file:/home/pattersd/work/csip-weather/test/service_tests/PRISM_V1_0/service.properties</file>
+            <file>file:/home/pattersd/work/csip-weather/test/service_tests/PRISM_V1_0/prism-req.json</file>
             <file>file:/home/pattersd/work/csip-weather/test/service_tests/PRISM_V1_0/prism-res.json</file>
         </group>
     </open-files>

src/java/python/weatherExtraction.py

@@ -485,32 +485,27 @@
             for x, y in [(d['x'], d['y']) for d in results]: 
                 cells.append([x, y])
             #assert len(cells) == 1, 'No PRISM data for cell {0}'.format(tile)
+
+            # PRISM return datetime dates
+            start_date = datetime.datetime(start_date.year, start_date.month, start_date.day)
+            end_date = datetime.datetime(end_date.year, end_date.month, end_date.day)
             
             # get data for multiple cells and multiple years
             for cell in cells:
-                data_results = db.prism_data.find({'_id': {'$in': ['{0}_{1}_{2}'.format(cell[0], cell[1], y) for y in range(start_date.year, end_date.year+1)]}})
-
-                # sort data 
+                data_results = db.prism.find({'_id': {'$in': ['{0}_{1}_{2}'.format(cell[0], cell[1], y) for y in range(start_date.year, end_date.year+1)]}})
                 data_results = sorted(data_results, key=lambda d: d['year'])
 
-                # cap start and end dates
-                if start_date.year < data_results[0]['year']:
-                    start_date = datetime.datetime(data_results[0]['year'], 1, 1)
+                for i in range(len(data_results)):
+                    data = data_results[i]['data']
+                    data = sorted(data, key=lambda d: d['date'])
 
-                # build precip
-                ppt = [v for d in data_results for v in d['data']['ppt']]
+                    for j in range(len(data)):
+                        row = data[j]
+                        if row['date'] >= start_date and row['date'] <= end_date:
+                        
+                            # convert precip from mm to cm
+                            ret.append([names[itile], row['date'].strftime('%Y-%m-%d'), conv_dict['tmp'](row['tmin']), conv_dict['tmp'](row['tmax']), conv_dict['apcp'](row['ppt'])])
 
-                # build tmin
-                tmin = [v for d in data_results for v in d['data']['tmin']]
-
-                # build tmax
-                tmax = [v for d in data_results for v in d['data']['tmax']]
-
-                dt = start_date
-                for i in range(len(tmax)):
-                    # convert precip from mm to cm
-                    ret.append([names[itile], dt.strftime('%Y-%m-%d'), conv_dict['tmp'](tmin[i]), conv_dict['tmp'](tmax[i]), conv_dict['apcp'](ppt[i])])
-                    dt += datetime.timedelta(days=1)
         return ret, cell_defs, cell_extents
 
     def WEgetDataGHCND(self, input_zone_file_or_station_list, units, start_date, end_date, generate_average=False, IDW_center=False):