Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 19001200B93 for ; Sat, 27 Aug 2016 05:42:26 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 17DD4160AC4; Sat, 27 Aug 2016 03:42:26 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id C0913160ACA for ; Sat, 27 Aug 2016 05:42:24 +0200 (CEST) Received: (qmail 12385 invoked by uid 500); 27 Aug 2016 03:42:24 -0000 Mailing-List: contact commits-help@climate.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@climate.apache.org Delivered-To: mailing list commits@climate.apache.org Received: (qmail 12285 invoked by uid 99); 27 Aug 2016 03:42:23 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 27 Aug 2016 03:42:23 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B3FECE0252; Sat, 27 Aug 2016 03:42:23 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: omkarr@apache.org To: commits@climate.apache.org Date: Sat, 27 Aug 2016 03:42:29 -0000 Message-Id: <7c0e0fb747e94dbfbb0a838c53f004b0@git.apache.org> In-Reply-To: <3dcb482e6f114360902afc4ed07f4a6d@git.apache.org> References: <3dcb482e6f114360902afc4ed07f4a6d@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [07/16] climate git commit: Making the code python 3 compliant and fixing indentation archived-at: Sat, 27 Aug 2016 03:42:26 -0000 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 Authored: Fri Aug 19 23:40:38 2016 +0530 Committer: Omkar20895 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')