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.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to