You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by om...@apache.org on 2016/08/27 03:42:29 UTC
[07/16] climate git commit: Making the code python 3 compliant and
fixing indentation
Making the code python 3 compliant and fixing indentation
Project: http://git-wip-us.apache.org/repos/asf/climate/repo
Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/21a78abd
Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/21a78abd
Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/21a78abd
Branch: refs/heads/master
Commit: 21a78abdae41a81c55b418b885371c0100d459d5
Parents: 0caf4b7
Author: Omkar20895 <om...@gmail.com>
Authored: Fri Aug 19 23:40:38 2016 +0530
Committer: Omkar20895 <om...@gmail.com>
Committed: Fri Aug 19 23:40:38 2016 +0530
----------------------------------------------------------------------
examples/podaac_integration_example.py | 14 ++++----
ocw/data_source/podaac.py | 56 ++++++++++++++---------------
ocw/tests/test_podaac.py | 4 +--
3 files changed, 36 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/climate/blob/21a78abd/examples/podaac_integration_example.py
----------------------------------------------------------------------
diff --git a/examples/podaac_integration_example.py b/examples/podaac_integration_example.py
index 990ee56..d68f747 100644
--- a/examples/podaac_integration_example.py
+++ b/examples/podaac_integration_example.py
@@ -29,7 +29,7 @@ OUTPUT_PLOT = "cmc_temporal_std"
print("Loading %s dataset into an OCW dataset objects" % datasetShortName)
cmc_dataset = podaac.load_dataset(
variable=variable, datasetId=datasetId, datasetShortName=datasetShortName, name=name)
-print "CMC_Dataset.values shape: (times, lats, lons) - %s \n" % (cmc_dataset.values.shape,)
+print("CMC_Dataset.values shape: (times, lats, lons) - %s \n" % (cmc_dataset.values.shape,))
# Acessing latittudes and longitudes of netCDF file
lats = cmc_dataset.lats
@@ -37,7 +37,7 @@ lons = cmc_dataset.lons
""" Step 2: Build a Metric to use for Evaluation - Temporal STD for this example """
# You can build your own metrics, but OCW also ships with some common metrics
-print "Setting up a Temporal STD metric to use for evaluation"
+print("Setting up a Temporal STD metric to use for evaluation")
std = metrics.TemporalStdDev()
""" Step 3: Create an Evaluation Object using Datasets and our Metric """
@@ -45,11 +45,11 @@ std = metrics.TemporalStdDev()
# Evaluation(reference, targets, metrics, subregions=None)
# Evaluation can take in multiple targets and metrics, so we need to convert
# our examples into Python lists. Evaluation will iterate over the lists
-print "Making the Evaluation definition"
+print("Making the Evaluation definition")
# Temporal STD Metric gets one target dataset then reference dataset
# should be None
std_evaluation = evaluation.Evaluation(None, [cmc_dataset], [std])
-print "Executing the Evaluation using the object's run() method"
+print("Executing the Evaluation using the object's run() method")
std_evaluation.run()
""" Step 4: Make a Plot from the Evaluation.results """
@@ -60,10 +60,10 @@ std_evaluation.run()
# The shape of results is (num_metrics, num_target_datasets) if no subregion
# Accessing the actual results when we have used 1 metric and 1 dataset is
# done this way:
-print "Accessing the Results of the Evaluation run"
+print("Accessing the Results of the Evaluation run")
results = std_evaluation.unary_results[0][0]
-print "The results are of type: %s" % type(results)
-print "Generating a contour map using ocw.plotter.draw_contour_map()"
+print("The results are of type: %s" % type(results))
+print("Generating a contour map using ocw.plotter.draw_contour_map()")
fname = OUTPUT_PLOT
gridshape = (4, 5) # 20 Years worth of plots. 20 rows in 1 column
http://git-wip-us.apache.org/repos/asf/climate/blob/21a78abd/ocw/data_source/podaac.py
----------------------------------------------------------------------
diff --git a/ocw/data_source/podaac.py b/ocw/data_source/podaac.py
index 7c233b3..b4085e8 100644
--- a/ocw/data_source/podaac.py
+++ b/ocw/data_source/podaac.py
@@ -21,8 +21,6 @@ from ocw.dataset import Dataset
from netCDF4 import Dataset as netcdf_dataset
from netcdftime import utime
import os
-import urllib
-import xml.etree.ElementTree as ET
def convert_times_to_datetime(time):
@@ -69,45 +67,45 @@ def load_dataset(variable, datasetId='', datasetShortName='', name=''):
:raises: ServerError
'''
# Downloading the dataset using podaac toolkit
- podaac = Podaac()
- path = os.path.dirname(os.path.abspath(__file__))
- granuleName = podaac.extract_l4_granule(
- datasetId=datasetId, shortName=datasetShortName, path=path)
- path = path + '/' + granuleName
- d = netcdf_dataset(path, mode='r')
- dataset = d.variables[variable]
+ podaac = Podaac()
+ path = os.path.dirname(os.path.abspath(__file__))
+ granuleName = podaac.extract_l4_granule(
+ dataset_id=datasetId, short_name=datasetShortName, path=path)
+ path = path + '/' + granuleName
+ d = netcdf_dataset(path, mode='r')
+ dataset = d.variables[variable]
# By convention, but not by standard, if the dimensions exist, they will be in the order:
# time (t), altitude (z), latitude (y), longitude (x)
# but conventions aren't always followed and all dimensions aren't always present so
# see if we can make some educated deductions before defaulting to just pulling the first three
# columns.
- temp_dimensions = map(lambda x: x.lower(), dataset.dimensions)
- dataset_dimensions = dataset.dimensions
- time = dataset_dimensions[temp_dimensions.index(
- 'time') if 'time' in temp_dimensions else 0]
- lat = dataset_dimensions[temp_dimensions.index(
- 'lat') if 'lat' in temp_dimensions else 1]
- lon = dataset_dimensions[temp_dimensions.index(
- 'lon') if 'lon' in temp_dimensions else 2]
+ temp_dimensions = map(lambda x: x.lower(), dataset.dimensions)
+ dataset_dimensions = dataset.dimensions
+ time = dataset_dimensions[temp_dimensions.index(
+ 'time') if 'time' in temp_dimensions else 0]
+ lat = dataset_dimensions[temp_dimensions.index(
+ 'lat') if 'lat' in temp_dimensions else 1]
+ lon = dataset_dimensions[temp_dimensions.index(
+ 'lon') if 'lon' in temp_dimensions else 2]
# Time is given to us in some units since an epoch. We need to convert
# these values to datetime objects. Note that we use the main object's
# time object and not the dataset specific reference to it. We need to
# grab the 'units' from it and it fails on the dataset specific object.
- times = np.array(convert_times_to_datetime(d[time]))
- lats = np.array(d.variables[lat][:])
- lons = np.array(d.variables[lon][:])
- values = np.array(dataset[:])
- origin = {
- 'source': 'PO.DAAC',
- 'url': 'podaac.jpl.nasa.gov/ws'
- }
+ times = np.array(convert_times_to_datetime(d[time]))
+ lats = np.array(d.variables[lat][:])
+ lons = np.array(d.variables[lon][:])
+ values = np.array(dataset[:])
+ origin = {
+ 'source': 'PO.DAAC',
+ 'url': 'podaac.jpl.nasa.gov/ws'
+ }
# Removing the downloaded temporary granule before creating the OCW
# dataset.
- d.close()
- path = os.path.join(os.path.dirname(__file__), granuleName)
- os.remove(path)
+ d.close()
+ path = os.path.join(os.path.dirname(__file__), granuleName)
+ os.remove(path)
- return Dataset(lats, lons, times, values, variable, name=name, origin=origin)
+ return Dataset(lats, lons, times, values, variable, name=name, origin=origin)
http://git-wip-us.apache.org/repos/asf/climate/blob/21a78abd/ocw/tests/test_podaac.py
----------------------------------------------------------------------
diff --git a/ocw/tests/test_podaac.py b/ocw/tests/test_podaac.py
index f696d02..04712b8 100644
--- a/ocw/tests/test_podaac.py
+++ b/ocw/tests/test_podaac.py
@@ -51,8 +51,8 @@ class TestPodaacDataSource(unittest.TestCase):
self.assertEquals(len(self.dataset.values), 1)
def test_valid_date_conversion(self):
- start = dt.datetime(2006, 6, 7, 12)
- self.assertTrue(start == self.dataset.times[0])
+ start = dt.datetime(2006, 6, 7, 12)
+ self.assertTrue(start == self.dataset.times[0])
def test_dataset_origin(self):
self.assertEquals(self.dataset.origin['source'], 'PO.DAAC')