You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by le...@apache.org on 2017/10/31 21:53:49 UTC

[6/9] climate git commit: CLIMATE-923 ocw-parallel multicore support Python3 support

CLIMATE-923 ocw-parallel multicore support Python3 support


Project: http://git-wip-us.apache.org/repos/asf/climate/repo
Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/28c92396
Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/28c92396
Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/28c92396

Branch: refs/heads/master
Commit: 28c92396d649fe5eacd00a235176fed1667ef80a
Parents: b2c0b14
Author: Lewis John McGibbney <le...@gmail.com>
Authored: Mon Sep 11 08:55:41 2017 -0700
Committer: Lewis John McGibbney <le...@gmail.com>
Committed: Mon Sep 11 08:55:41 2017 -0700

----------------------------------------------------------------------
 ocw-parallel/functions.py | 47 ++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/28c92396/ocw-parallel/functions.py
----------------------------------------------------------------------
diff --git a/ocw-parallel/functions.py b/ocw-parallel/functions.py
index 0ba3061..3c4cdfc 100644
--- a/ocw-parallel/functions.py
+++ b/ocw-parallel/functions.py
@@ -15,7 +15,10 @@
 # specific language governing permissions and limitations
 # under the License.
 
-import sys, os, datetime, urllib, urlparse
+import sys, os, datetime
+from future.standard_library import install_aliases
+install_aliases()
+from urllib.parse import urlparse
 from datetime import timedelta
 import numpy as np
 
@@ -43,7 +46,7 @@ def loadDataset(urlAndVariable, dir=None):
         coords = '(time, lat, lon)'
     elif len(shape) == 2:
         coords = '(lat, lon)'
-    print >>sys.stderr, 'loadDataset: File %s has variable %s with shape %s: %s' % (f, variable, coords, shape) 
+    print('loadDataset: File %s has variable %s with shape %s: %s' % (f, variable, coords, shape), file=sys.stderr) 
     return ds
 
 def loadDatasets(urlAndVariables, dir=None):
@@ -55,7 +58,7 @@ def temporalRegrid(dataset, timeRes=timedelta(days=365)):
     dataset = dsp.temporal_rebin(dataset, timeRes)
     name = dataset.name
     if name is None: name = ''
-    print >>sys.stderr, 'temporalRebin: Dataset %s has new shape %s' % (name, str(dataset.values.shape))
+    print('temporalRebin: Dataset %s has new shape %s' % (name, str(dataset.values.shape)), file=sys.stderr)
     return dataset
 
 def temporalRegrids(datasets, timeRes=timedelta(days=365)):
@@ -71,20 +74,20 @@ def commonSpatialBounds(datasets):
     for i, b in enumerate(bounds):
         name = datasets[i].name
         if name is None or name == '': name = str(i)
-        print >>sys.stderr, 'commonSpatialBounds: Dataset %s has boundaries: lat (%s, %s), lon (%s, %s).' % \
-                                (name, b[0], b[1], b[2], b[3])
+        print('commonSpatialBounds: Dataset %s has boundaries: lat (%s, %s), lon (%s, %s).' % \
+                                (name, b[0], b[1], b[2], b[3]), file=sys.stderr)
     minLat = max([b[0] for b in bounds])
     maxLat = min([b[1] for b in bounds])
     minLon = max([b[2] for b in bounds])
     maxLon = min([b[3] for b in bounds])
-    print >>sys.stderr, 'commonSpatialBounds: Common boundaries are: lat (%s, %s), lon (%s, %s).' % \
-                            (minLat, maxLat, minLon, maxLon)
+    print('commonSpatialBounds: Common boundaries are: lat (%s, %s), lon (%s, %s).' % \
+                            (minLat, maxLat, minLon, maxLon), file=sys.stderr)
     return (minLat, maxLat, minLon, maxLon)
 
 def generateLatLonGrid(latGrid, lonGrid):
     '''Generate a uniform lat/lon grid at set resolutions, where latGrid is a tuple of (latMin, latMax, latRes).'''
-    minLat, maxLat, latRes = map(float, latGrid)
-    minLon, maxLon, lonRes = map(float, lonGrid)
+    minLat, maxLat, latRes = list(map(float, latGrid))
+    minLon, maxLon, lonRes = list(map(float, lonGrid))
     lats = np.arange(minLat, maxLat, float(latRes))
     lons = np.arange(minLon, maxLon, float(lonRes))
     return (lats, lons)
@@ -120,7 +123,7 @@ def lookupMetrics(metricNames,
             m = availableMetrics[name]
             metrics.append(m())
         except:
-            print >>sys.stderr, 'lookupMetrics: Error, No metric named %s' % name
+            print('lookupMetrics: Error, No metric named %s' % name, file=sys.stderr)
     return metrics
 
 def computeMetrics(datasets, metricNames=['Bias'], subregions=None):
@@ -130,9 +133,9 @@ are identical.
     '''
     metrics = lookupMetrics(metricNames)
     if len(metrics) != len(metricNames):
-        print >>sys.stderr, 'computeMetrics: Error, Illegal or misspelled metric name.'
+        print('computeMetrics: Error, Illegal or misspelled metric name.', file=sys.stderr)
     eval = evaluation.Evaluation(datasets[0], datasets[1:], metrics)
-    print >>sys.stderr, 'computeMetrics: Evaluating metrics %s . . .' % str(metricNames)
+    print('computeMetrics: Evaluating metrics %s . . .' % str(metricNames), file=sys.stderr)
     eval.run()
     return eval.results
 
@@ -164,7 +167,7 @@ after temporally rebinning to a common time resolution and a common spatial (lat
 def plotBias(metric, lats, lons, outputName, **config):
     '''Plot the bias of the reference datasets compared to multiple targets.'''
     plotFile = outputName + '.png'
-    print 'plotBias: Writing %s' % plotFile
+    print(('plotBias: Writing %s' % plotFile))
     plotter.draw_contour_map(metric, lats, lons, outputName, **config)
     return plotFile
 
@@ -173,10 +176,10 @@ def plotBias(metric, lats, lons, outputName, **config):
 
 def isLocalFile(url):
     '''Check if URL is a local path.'''
-    u = urlparse.urlparse(url)
+    u = urlparse(url)
     if u.scheme == '' or u.scheme == 'file':
         if not path.exists(u.path):
-            print >>sys.stderr, 'isLocalFile: File at local path does not exist: %s' % u.path
+            print('isLocalFile: File at local path does not exist: %s' % u.path, file=sys.stderr)
         return (True, u.path)
     else:
         return (False, u.path)
@@ -189,13 +192,13 @@ def retrieveFile(url, dir=None):
     outPath = os.path.join(dir, fn)
     if not ok:
         if os.path.exists(outPath):
-            print >>sys.stderr, 'retrieveFile: Using cached file: %s' % outPath
+            print('retrieveFile: Using cached file: %s' % outPath, file=sys.stderr)
         else:
             try:
-                print >>sys.stderr, 'retrieveFile: Retrieving (URL) %s to %s' % (url, outPath)
-                urllib.urlretrieve(url, outPath)
+                print('retrieveFile: Retrieving (URL) %s to %s' % (url, outPath), file=sys.stderr)
+                urllib.request.urlretrieve(url, outPath)
             except:
-                print >>sys.stderr, 'retrieveFile: Cannot retrieve file at URL: %s' % url
+                print('retrieveFile: Cannot retrieve file at URL: %s' % url, file=sys.stderr)
                 return None
     return outPath    
 
@@ -205,11 +208,11 @@ def retrieveFile(url, dir=None):
 def test1(urlsAndVars, outputName, **config):
     '''Test compareManyWithMetrics routine.'''
     lats, lons, metrics = compareVariablesWithMetrics(urlsAndVars, ['Bias'], outputName, timedelta(days=365), 1, 1)
-    print metrics
+    print(metrics)
     
     config = {'gridshape': (4, 5),
               'ptitle': 'TASMAX Bias of WRF Compared to KNMI (1989 - 2008)',
-              'subtitles': range(1989, 2009, 1)}
+              'subtitles': list(range(1989, 2009, 1))}
     plotFile = plotBias(metrics[0][0], lats, lons, outputName, **config)
     return plotFile
 
@@ -229,7 +232,7 @@ def main(args):
         return test2(urlsAndVars, outputName)
 
 if __name__ == '__main__':
-    print main(sys.argv[1:])
+    print(main(sys.argv[1:]))
 
 
 # python functions.py 1 "http://zipper.jpl.nasa.gov/dist/AFRICA_KNMI-RACMO2.2b_CTL_ERAINT_MM_50km_1989-2008_tasmax.nc" "tasmax" "wrf_bias_compared_to_knmi" "http://zipper.jpl.nasa.gov/dist/AFRICA_UC-WRF311_CTL_ERAINT_MM_50km-rg_1989-2008_tasmax.nc" "tasmax"