blob: 6c600ab3ca73fd3355a39379721cb3f068f2266e [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
import ocw.data_source.podaac_datasource as podaac
import unittest
import os
import datetime as dt
from ocw.dataset import Dataset
class TestPodaacDataSource(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.datasetId = 'PODAAC-GHCMC-4FM02'
cls.variable = 'sea_ice_fraction'
cls.name = 'PO.DAAC_test_dataset'
cls.file_path = os.path.dirname(os.path.abspath(__file__))
cls.format = '.nc'
cls.dataset = podaac.extract_l4_granule(cls.variable, cls.datasetId, cls.name)
# Currently the PO.DAAC subsetting is only available for Level2 granules,
# plans are underway to extend this to Level3 and 4 granules and OCW can make use
# of this when that functionality becomes available. More information about Level2
# subsetting can be found at https://podaac.jpl.nasa.gov/ws/subset/granule/index.html
#cls.json = 'subset.json'
#cls.subset_datasetId = 'PODAAC-GHRAM-4FA01'
#cls.subset_variable = 'analysed_sst'
#cls.subset_name = 'GHRSST Level 4 RAMSSA Australian Regional Foundation Sea Surface Temperature Analysis'
#cls.granule_subset = podaac.subset_granule(
# cls.subset_variable,
# cls.subset_datasetId,
# name=cls.subset_name,
# input_file_path=cls.json)
def test_is_dataset(self):
print('in test_is_dataset')
self.assertTrue(isinstance(self.dataset, Dataset))
def test_dataset_lats(self):
print('in test_dataset_lats')
self.assertEquals(len(self.dataset.lats), 901)
def test_dataset_lons(self):
print('in test_dataset_lons')
self.assertEquals(len(self.dataset.lons), 1800)
def test_dataset_times(self):
print('in test_dataset_times')
self.assertEquals(len(self.dataset.times), 1)
def test_dataset_values(self):
print('in test_dataset_values')
self.assertEquals(len(self.dataset.values), 1)
def test_valid_date_conversion(self):
print('in test_valid_date_conversion')
start = dt.datetime(1991, 9, 2, 12)
self.assertTrue(start == self.dataset.times[0])
def test_dataset_origin(self):
print('in test_dataset_origin')
self.assertEquals(self.dataset.origin['source'], 'NASA JPL PO.DAAC')
self.assertEquals(self.dataset.origin['url'], 'https://podaac.jpl.nasa.gov')
def test_custom_name(self):
print('in test_custom_name')
self.assertEquals(self.dataset.name, self.name)
#def test_granule_subset(self):
# print('in test_granule_subset')
# self.assertEquals(self.granule_subset.name, self.subset_name)
if __name__ == '__main__':
unittest.main()