From: <js...@us...> - 2008-08-09 16:25:27
|
Revision: 6014 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6014&view=rev Author: jswhit Date: 2008-08-09 16:25:22 +0000 (Sat, 09 Aug 2008) Log Message: ----------- added NetCDFFile test Added Paths: ----------- trunk/toolkits/basemap/examples/NetCDFFile_tst.py Added: trunk/toolkits/basemap/examples/NetCDFFile_tst.py =================================================================== --- trunk/toolkits/basemap/examples/NetCDFFile_tst.py (rev 0) +++ trunk/toolkits/basemap/examples/NetCDFFile_tst.py 2008-08-09 16:25:22 UTC (rev 6014) @@ -0,0 +1,65 @@ +import sys +import unittest +import os +import tempfile +from numpy import ma +from numpy.testing import assert_array_equal, assert_array_almost_equal +from numpy.random.mtrand import uniform +from mpl_toolkits.basemap import NetCDFFile + +# test automatic conversion of masked arrays, and +# packing/unpacking of short ints. + +FILE_NAME = tempfile.mktemp(".nc") +ndim = 10 +ranarr = 100.*uniform(size=(ndim)) +packeddata = 10.*uniform(size=(ndim)) +missing_value = -9999. +ranarr[::2] = missing_value +maskedarr = ma.masked_values(ranarr,-9999.) +scale_factor = (packeddata.max()-packeddata.min())/(2.*32766.) +add_offset = 0.5*(packeddata.max()+packeddata.min()) +packeddata2 = ((packeddata-add_offset)/scale_factor).astype('i2') + +class TestCase(unittest.TestCase): + + def setUp(self): + self.file = FILE_NAME + file = NetCDFFile(self.file,'w') + file.createDimension('n', None) # use unlimited dim. + foo = file.createVariable('maskeddata', 'f8', ('n',)) + foo.missing_value = missing_value + bar = file.createVariable('packeddata', 'i2', ('n',)) + bar.scale_factor = scale_factor + bar.add_offset = add_offset + foo[0:ndim] = maskedarr + bar[0:ndim] = packeddata + file.close() + + def tearDown(self): + # Remove the temporary files + os.remove(self.file) + + def runTest(self): + """testing auto-conversion of masked arrays and packed integers""" + # no auto-conversion. + file = NetCDFFile(self.file,maskandscale=False) + datamasked = file.variables['maskeddata'] + datapacked = file.variables['packeddata'] + # check missing_value, scale_factor and add_offset attributes. + assert datamasked.missing_value == missing_value + assert datapacked.scale_factor == scale_factor + assert datapacked.add_offset == add_offset + assert_array_equal(datapacked[:],packeddata2) + assert_array_almost_equal(datamasked[:],ranarr) + file.close() + # auto-conversion + file = NetCDFFile(self.file) + datamasked = file.variables['maskeddata'] + datapacked = file.variables['packeddata'] + assert_array_almost_equal(datamasked[:].filled(),ranarr) + assert_array_almost_equal(datapacked[:],packeddata,decimal=4) + file.close() + +if __name__ == '__main__': + unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2011-02-01 04:15:27
|
Revision: 8938 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8938&view=rev Author: jswhit Date: 2011-02-01 04:15:20 +0000 (Tue, 01 Feb 2011) Log Message: ----------- try to use netCDF4 Modified Paths: -------------- trunk/toolkits/basemap/examples/NetCDFFile_tst.py Modified: trunk/toolkits/basemap/examples/NetCDFFile_tst.py =================================================================== --- trunk/toolkits/basemap/examples/NetCDFFile_tst.py 2011-02-01 04:02:08 UTC (rev 8937) +++ trunk/toolkits/basemap/examples/NetCDFFile_tst.py 2011-02-01 04:15:20 UTC (rev 8938) @@ -5,7 +5,10 @@ from numpy import ma from numpy.testing import assert_array_equal, assert_array_almost_equal from numpy.random.mtrand import uniform -from mpl_toolkits.basemap import NetCDFFile +try: + from netCDF4 import Dataset as NetCDFFile +except ImportError: + from mpl_toolkits.basemap import NetCDFFile # test automatic conversion of masked arrays, and # packing/unpacking of short ints. @@ -46,6 +49,8 @@ file = NetCDFFile(self.file,maskandscale=False) datamasked = file.variables['maskeddata'] datapacked = file.variables['packeddata'] + if hasattr(datapacked,'set_auto_maskandscale'): + datapacked.set_auto_maskandscale(False) # check missing_value, scale_factor and add_offset attributes. assert datamasked.missing_value == missing_value assert datapacked.scale_factor == scale_factor @@ -57,7 +62,7 @@ file = NetCDFFile(self.file) datamasked = file.variables['maskeddata'] datapacked = file.variables['packeddata'] - assert_array_almost_equal(datamasked[:].filled(),ranarr) + assert_array_almost_equal(datamasked[:].filled(datamasked.missing_value),ranarr) assert_array_almost_equal(datapacked[:],packeddata,decimal=4) file.close() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |