当前位置: 首页>>代码示例>>Python>>正文


Python Data._init_sample_object方法代码示例

本文整理汇总了Python中pycmbs.data.Data._init_sample_object方法的典型用法代码示例。如果您正苦于以下问题:Python Data._init_sample_object方法的具体用法?Python Data._init_sample_object怎么用?Python Data._init_sample_object使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pycmbs.data.Data的用法示例。


在下文中一共展示了Data._init_sample_object方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_rasterize_init

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
    def test_rasterize_init(self):
        x = Data(None, None)
        x._init_sample_object(ny=1, nx=272)
        x.lon = np.random.random(272)*10. + 5.  # 5 ... 15
        x.lat = np.random.random(272)*20. + 0.  # 0 ... 20

        lon = np.random.random((10,20))
        lat = np.random.random((30,20))

        with self.assertRaises(ValueError):
            x._rasterize(lon, lat, radius=0.1)
        lon = np.random.random((10,20))
        lat = np.random.random((10,20))

        with self.assertRaises(ValueError):
            x._rasterize(lon, lat, radius=None)
开发者ID:marcelorodriguesss,项目名称:pycmbs,代码行数:18,代码来源:test_rasterize.py

示例2: test_rasterize_data

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
    def test_rasterize_data(self):
        """
        testdataset

        +---+---+---+
        |1.2|2.3|   |
        +---+---+---+
        |   |   |0.7|
        +---+---+---+
        |   |5.2|   |
        +---+---+---+
        """
        x = Data(None, None)
        x._init_sample_object(ny=1, nx=272)

        x.lon = np.asarray([2.25, 2.45, 1.8, 3.6])
        x.lat = np.asarray([11.9, 10.1, 10.2, 11.3])
        x.data = np.asarray([5.2, 2.3, 1.2, 0.7])

        # target grid
        lon = np.asarray([1.5, 2.5, 3.5])
        lat = np.asarray([10., 11., 12.])
        LON, LAT = np.meshgrid(lon, lat)

        # rasterize data

        # no valid data
        res = x._rasterize(LON, LAT, radius=0.000001, return_object=True)
        self.assertEqual(res.data.mask.sum(), np.prod(LON.shape))

        with self.assertRaises(ValueError):
            res = x._rasterize(LON, LAT, radius=0.000001, return_object=False)

        # check valid results
        res = x._rasterize(LON, LAT, radius=0.5, return_object=True)
        self.assertEqual(res.data[0,0], 1.2)
        self.assertEqual(res.data[0,1], 2.3)
        self.assertEqual(res.data[1,2], 0.7)
        self.assertEqual(res.ny*res.nx - res.data.mask.sum(), 4)
开发者ID:marcelorodriguesss,项目名称:pycmbs,代码行数:41,代码来源:test_rasterize.py

示例3: test_lomb_basic

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
    def test_lomb_basic(self):

        def _sample_data(t, w, A, B):
            e = np.random.random(len(t))*0.
            y = A * np.cos(w*self.t + B)
            return y, e

        def _test_ratio(x,y, thres=0.05):
            r = np.abs(1. - x / y)
            print r, x/y
            self.assertTrue(r <= thres) # accuracy of ration by 5%

        # test with single frequency
        p_ref = 10.
        w = 2.*np.pi / p_ref
        y, e = _sample_data(self.t, w, 5., 0.1)

        P = np.arange(2., 20., 2.)  # target period [days]
        Ar, Br = lomb_scargle_periodogram(self.t, P, y+e, corr=False)

        _test_ratio(Ar[4], 5.)
        _test_ratio(Br[4], 0.1)

        Ar, Br, Rr, Pr = lomb_scargle_periodogram(self.t, P, y)
        _test_ratio(Ar[4], 5.)
        _test_ratio(Br[4], 0.1)
        #~ self.assertEqual(Rr[4], 1.)
        #~ self.assertEqual(Pr[4], 0.)

        # test for functions with overlapping frequencies
        p_ref1 = 365.
        p_ref2 = 365.
        w1 = 2.*np.pi / p_ref1
        w2 = 2.*np.pi / p_ref2
        y1, e1 = _sample_data(self.t, w1, 4., 0.1)
        y2, e2 = _sample_data(self.t, w2, 3.6, 0.1)

        P = np.arange(1., 366., 1.)  # target period [days]
        Ar, Br = lomb_scargle_periodogram(self.t, P, y1+e1+y2+e2, corr=False)

        _test_ratio(Ar[-1], 7.6)
        _test_ratio(Br[-1], 0.1)

        # overlapping frequencies 2
        p_ref1 = 100.
        p_ref2 = 200.
        w1 = 2.*np.pi / p_ref1
        w2 = 2.*np.pi / p_ref2
        y1, e1 = _sample_data(self.t, w1, 2., np.pi*0.3)  # don't choose pi for phase, as this will result in an optimization with negative amplitude and zero phase (= sin)
        y2, e2 = _sample_data(self.t, w2, 3., np.pi*0.5)
        P = np.arange(1., 366., 1.)  # target period [days]
        hlp = y1+e1+y2+e2
        Ar, Br = lomb_scargle_periodogram(self.t, P, hlp, corr=False)

        # sample data object
        D = Data(None, None)
        D._init_sample_object(nt=len(y), ny=1, nx=1)
        D.data[:,0,0] = np.ma.array(hlp, mask=hlp!=hlp)
        D.time = self.t

        D_dummy = Data(None, None)
        D_dummy._init_sample_object(nt=len(y), ny=1, nx=1)
        with self.assertRaises(ValueError):
            D_dummy.time_str = 'hours since 2001-01-01'  # only days currently supported!
            xx, yy = D_dummy.lomb_scargle_periodogram(P, return_object=False)

        AD, BD = D.lomb_scargle_periodogram(P, return_object=False, corr=False)
        AD1, BD1 = D.lomb_scargle_periodogram(P, return_object=True, corr=False)
        self.assertEqual(AD.shape, BD.shape)
        self.assertEqual(D.ny, AD.shape[1])
        self.assertEqual(D.nx, AD.shape[2])

        _test_ratio(Ar[99], 2.)
        _test_ratio(AD[99,0,0], 2.)
        _test_ratio(AD1.data[99, 0,0], 2.)

        _test_ratio(Ar[199], 3.)
        _test_ratio(AD[199,0,0], 3.)
        _test_ratio(AD1.data[199,0,0], 3.)

        _test_ratio(Br[99], np.pi*0.3)
        _test_ratio(BD[99,0,0], np.pi*0.3)
        _test_ratio(BD1.data[99,0,0], np.pi*0.3)

        _test_ratio(Br[199], np.pi*0.5)
        _test_ratio(BD[199,0,0], np.pi*0.5)
        _test_ratio(BD1.data[199,0,0], np.pi*0.5)

        # test for data with gaps
        # tests are not very robust yet as results depend on noise applied!
        p_ref1 = 100.
        p_ref2 = 200.
        w1 = 2.*np.pi / p_ref1
        w2 = 2.*np.pi / p_ref2
        y1, e1 = _sample_data(self.t, w1, 2., np.pi*0.3)  # don't choose pi for phase, as this will result in an optimization with negative amplitude and zero phase (= sin)
        y2, e2 = _sample_data(self.t, w2, 3., np.pi*0.5)
        P = np.arange(1., 366., 1.)  # target period [days]

        ran = np.random.random(len(self.t))
        msk = ran > 0.1
#.........这里部分代码省略.........
开发者ID:wk1984,项目名称:pycmbs,代码行数:103,代码来源:test_statistic.py

示例4: TestPycmbsBenchmarkingModels

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
class TestPycmbsBenchmarkingModels(unittest.TestCase):

    def setUp(self):
        self.D = Data(None, None)
        self.D._init_sample_object(nt=1000, ny=1, nx=1)

        # generate dummy Model object
        data_dir = './test/'
        varmethods = {'albedo':'get_albedo()', 'sis': 'get_sis()'}
        self.model = models.Model(data_dir, varmethods, name='testmodel', intervals='monthly')

        sis = self.D.copy()
        sis.mulc(5., copy=False)
        sis.label='sisdummy'

        alb = self.D.copy()
        alb.label='albedodummy'

        # add some dummy data variable
        self.model.variables = {'albedo':alb, 'sis':sis}

    def test_save_prefix_missing(self):
        m = self.model
        odir = tempfile.mkdtemp() + os.sep
        with self.assertRaises(ValueError):
            m.save(odir)

    def test_save_create_odir(self):
        m = self.model
        odir = tempfile.mkdtemp() + os.sep
        if os.path.exists(odir):
            os.system('rm -rf ' + odir)
        m.save(odir, prefix='test')
        self.assertTrue(os.path.exists(odir))
        os.system('rm -rf ' + odir)

    def test_save(self):
        m = self.model
        odir = tempfile.mkdtemp() + os.sep

        sisfile = odir + 'testoutput_SIS.nc'
        albfile = odir + 'testoutput_ALBEDO.nc'
        if os.path.exists(sisfile):
            os.remove(sisfile)
        if os.path.exists(albfile):
            os.remove(albfile)

        m.save(odir, prefix='testoutput')
        self.assertTrue(os.path.exists(sisfile))
        self.assertTrue(os.path.exists(albfile))

        if os.path.exists(sisfile):
            os.remove(sisfile)
        if os.path.exists(albfile):
            os.remove(albfile)
        os.system('rm -rf ' + odir)

    def test_cmip5_init_singlemember(self):
        data_dir = tempfile.mkdtemp()

        # invalid model identifier
        with self.assertRaises(ValueError):
            M = models.CMIP5RAW_SINGLE(data_dir, 'MPI-M:MPI-ESM-LR1', 'amip', {}, intervals='monthly')
        with self.assertRaises(ValueError):
            M = models.CMIP5RAW_SINGLE(data_dir, 'MPI-M:MPI-ESM-LR#1#2', 'amip', {}, intervals='monthly')
        M1 = models.CMIP5RAW_SINGLE(data_dir, 'MPI-M:MPI-ESM-LR#1', 'amip', {}, intervals='monthly')
        M2 = models.CMIP5RAW_SINGLE(data_dir, 'MPI-M:MPI-ESM-LR#728', 'amip', {}, intervals='monthly')
        self.assertEqual(M1.ens_member, 1)
        self.assertEqual(M2.ens_member, 728)

    def test_cmip5_singlemember_filename(self):
        data_dir = tempfile.mkdtemp()

        # generate testfile
        testfile = data_dir + os.sep + 'MPI-M' + os.sep + 'MPI-ESM-LR' + os.sep + 'amip' + os.sep + 'mon' + os.sep + 'atmos' + os.sep + 'Amon' + os.sep + 'r1i1p1' + os.sep + 'ta' + os.sep + 'ta_Amon_MPI-ESM-LR_amip_r1i1p1_197901-200812.nc'
        os.makedirs(os.path.dirname(testfile))
        os.system('touch ' + testfile)
        self.assertTrue(os.path.exists(testfile))

        M = models.CMIP5RAW_SINGLE(data_dir, 'MPI-M:MPI-ESM-LR#1', 'amip', {}, intervals='monthly')
        f = M.get_single_ensemble_file('ta', mip='Amon', realm='atmos')
        self.assertTrue(os.path.exists(f))
        self.assertEqual(f, testfile)
开发者ID:zengeo,项目名称:pycmbs,代码行数:85,代码来源:test_models.py

示例5: TestPycmbsPlots

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
class TestPycmbsPlots(unittest.TestCase):

    def setUp(self):
        self.D = Data(None, None)
        self.D._init_sample_object(nt=1000, ny=1, nx=1)
        self._tmpdir = tempfile.mkdtemp()

    def test_ReichlerPlotGeneral(self):
        RP = ReichlerPlot()
        for i in xrange(10):
            RP.add([i*12.], 'test'+str(i))
        RP.simple_plot()
        RP.bar(title='some title', vmin=-10., vmax=10.)
        #~ RP.circle_plot()

    def test_ScatterPlot_General(self):
        x = self.D
        S = ScatterPlot(x)
        S.plot(x)
        S.legend()

    def test_rotate_ticks(self):
        f = plt.figure()
        ax=f.add_subplot(111)
        ax.plot(np.random.random(1000))
        rotate_ticks(ax, 20.)

    def test_correlation_analysis(self):
        x = self.D
        y = self.D
        C = CorrelationAnalysis(x, y)
        C.do_analysis()

    def test_ScatterPlot_GeneralWithNormalization(self):
        x = self.D
        S = ScatterPlot(x, normalize_data=True)
        S.plot(x)
        S.legend()

    def test_ScatterPlot_FldemeanFalse(self):
        x = self.D
        S = ScatterPlot(x)
        S.plot(x, fldmean=False)
        S.legend()

    def test_ScatterPlot_InvalidShape(self):
        x = self.D
        S = ScatterPlot(x)
        y = self.D.copy()
        y.data = np.random.random((10,20,30,40))
        with self.assertRaises(ValueError):
            S.plot(y, fldmean=False)

    def test_LinePlot_General(self):
        x = self.D
        L = LinePlot()
        L1 = LinePlot(regress=True)
        L.plot(x)
        L1.plot(x)

    def test_LinePlot_WithAxis(self):
        x = self.D
        f = plt.figure()
        ax = f.add_subplot(111)
        L = LinePlot(ax=ax)
        L.plot(x)

    def test_HistogrammPlot_General(self):
        H = HistogrammPlot(normalize=True)
        H.plot(self.D, bins=10, shown=True)

    def test_ZonalPlot(self):
        Z = ZonalPlot()
        Z.plot(self.D)

    def test_map_difference_General(self):
        map_difference(self.D, self.D)


    def test_GlecklerPlot_InvalidNumberOfObservations(self):
        G = GlecklerPlot()
        G.add_model('echam5')
        G.add_model('mpi-esm')
        G.add_variable('ta')
        G.add_data('ta', 'echam5', 0.5,pos=1)
        G.add_data('ta', 'echam5',0.25,pos=2)
        G.add_data('ta', 'echam5',-0.25,pos=3)
        G.add_data('ta', 'mpi-esm',-0.25,pos=4)
        G.add_data('ta', 'mpi-esm',-0.25,pos=5)
        with self.assertRaises(ValueError):
            G.plot()


    def test_GlecklerPlot_4obs(self):
        G = GlecklerPlot()
        G.add_model('echam5')
        G.add_model('mpi-esm')
        G.add_variable('ta')
        G.add_variable('P')
        G.add_data('P', 'echam5', 0.5,pos=1)
#.........这里部分代码省略.........
开发者ID:zengeo,项目名称:pycmbs,代码行数:103,代码来源:test_plots.py

示例6: TestMapPlotGeneric

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
class TestMapPlotGeneric(unittest.TestCase):
    def setUp(self):
        self.map_plot = mapping.MapPlotGeneric()
        self.D = Data(None, None)
        self.D._init_sample_object(nt=1000, ny=10, nx=20)
        self._tmpdir = tempfile.mkdtemp()

    def test_SingleMap_Init(self):
        try:
            import cartopy.crs as ccrs
        except:
            return True  #no testing if cartopy not installed

        # just test if things pass
        SM1 = mapping.SingleMap(self.D)
        SM2 = mapping.SingleMap(self.D, stat_type='sum')
        proj_prop = {'projection': 'robin'}
        SM3 = mapping.SingleMap(self.D, backend='basemap', stat_type='median')
        SM4 = mapping.SingleMap(self.D, backend='cartopy')
        SM1.plot(show_zonal=True)
        SM2.plot(show_zonal=True, colorbar_orientation='horizontal')
        SM3.plot(show_zonal=True, colorbar_orientation='horizontal', proj_prop=proj_prop)
        SM4.plot(show_zonal=True, colorbar_orientation='horizontal', proj_prop=proj_prop)

    def test_SingleMap_WithoutColorbar(self):
        SM = mapping.SingleMap(self.D)
        SM.plot(show_colorbar=False)

    def test_invalid_colorbar_orientation(self):
        SM = mapping.SingleMap(self.D)
        with self.assertRaises(ValueError):
            SM.plot(colorbar_orientation='something')

    def test_SingleMap_WithPredefinedAxis(self):
        f = plt.figure()
        ax = f.add_subplot(2,1,1)
        SM1 = mapping.SingleMap(self.D, ax=ax)

    def test_SingleMap_WithPredefinedAxisButWhichIsNone(self):
        ax = None
        SM1 = mapping.SingleMap(self.D, ax=ax)

    def test_SingleMap_InitWithInvalidBackend(self):
        # just test if things pass
        with self.assertRaises(ValueError):
            SM = mapping.SingleMap(self.D, backend='some_invalid_backend')

    def test_SingleMap_InitWithMissingProjectionProperties(self):
        # just test if things pass
        with self.assertRaises(ValueError):
            SM = mapping.SingleMap(self.D, backend='cartopy')
            SM.plot()

    def test_SingleMap_Save(self):
        SM = mapping.SingleMap(self.D, savefile=self._tmpdir + os.sep + 'my_test_save_file.nc')
        SM.save(save_mean=True, save_all=True)
        self.assertTrue(os.path.exists(self._tmpdir + os.sep + 'my_test_save_file.nc_timmean.nc'))
        self.assertTrue(os.path.exists(self._tmpdir + os.sep + 'my_test_save_file.nc_timmean.nc_all.nc'))
        if os.path.exists(self._tmpdir + os.sep + 'my_test_save_file.nc_timmean.nc'):
            os.remove(self._tmpdir + os.sep + 'my_test_save_file.nc_timmean.nc')
        if os.path.exists(self._tmpdir + os.sep + 'my_test_save_file.nc_timmean.nc_all.nc'):
            os.remove(self._tmpdir + os.sep + 'my_test_save_file.nc_timmean.nc_all.nc')

    @unittest.skip('skip as only for local testing')
    def test_SingleMap_add_cyclic(self):
        file='/home/m300028/shared/data/SEP/variables/land/Ta_2m/cru_ts_3_00.1901.2006.tmp_miss_t63.nc'
        ofile = 'world.png'
        if os.path.exists(ofile):
            os.remove(ofile)
        d=Data(file,'tmp',read=True)
        map_plot(d, use_basemap=True, savegraphicfile=ofile)
        if os.path.exists(ofile):
            os.remove(ofile)
开发者ID:marcelorodriguesss,项目名称:pycmbs,代码行数:75,代码来源:test_mapping.py

示例7: TestData

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
class TestData(unittest.TestCase):

    def setUp(self):
        self.D = Data(None, None)
        self.D._init_sample_object(nt=1000, ny=1, nx=1)


    def test_is_closed(self):
        poly = [(150.,20.), (-160.,30.), (-170.,10.), (170.,10.)]
        P = Polygon(3, poly)
        self.assertFalse(P.is_closed())

        poly1 = [(150.,20.), (-160.,30.), (-170.,10.), (170.,10.), (150.,20.)]
        P1 = Polygon(3, poly1)
        self.assertTrue(P1.is_closed())

    @unittest.skip('OGR import causes trouble in import locally, therefore currently skipping this test')
    def test_convertOGR(self):
        poly = [(150.,20.), (-160.,30.), (-170.,10.), (170.,10.)]
        P = Polygon(3, poly)
        A = P.convertToOGRPolygon()
        B = P.convertToOGRPolygon(ensure_positive=True)


    def test_shift(self):
        poly3 = [(150.,20.), (-160.,30.), (-170.,10.), (170.,10.)]
        P3 = Polygon(3, poly3)
        P3._shift_coordinates()  # shift longitudes by 200 degree
        self.assertEqual(P3.poly[0][0], 150.)
        self.assertEqual(P3.poly[1][0], 200.)
        self.assertEqual(P3.poly[2][0], 190.)
        self.assertEqual(P3.poly[3][0], 170.)


    def test_point_in_polygon(self):
        x = 1
        y = 1
        poly = [(0,0), (2,0), (2,2), (0,2)]
        P = Polygon(1, poly)
        self.assertTrue(P.point_in_poly(x,y))
        x = 4
        y = 4
        self.assertFalse(P.point_in_poly(x,y))

    @unittest.skip('OGR import causes trouble in import locally, therefore currently skipping this test')
    def test_point_in_polygon_latlon(self):
        # test for point in polygon across dateline
        x1 = -175.
        y1 = 50.
        poly1= [(150.,60.), (-160.,60.), (-170.,45.), (170.,45.)]
        P1 = Polygon(1, poly1)
        self.assertTrue(P1.point_in_poly_latlon(x1,y1))


    def test_polygon_min_max(self):
        x = 1
        y = 1
        poly = [(-5,0), (2,0), (2,2), (0,6)]
        P = Polygon(1, poly)

        bbox = P.bbox()
        self.assertEqual(bbox[0], -5.)
        self.assertEqual(bbox[1], 2.)
        self.assertEqual(bbox[2], 0.)
        self.assertEqual(bbox[3], 6.)

    def test_raster_wrong_geometry(self):
        lon = np.random.random((10,20))
        lat = np.random.random((11,20))
        with self.assertRaises(ValueError):
            R = Raster(lon, lat)

    def test_raster_wrong_latlon(self):
        lon = np.random.random(10)
        lat = np.random.random(10)
        print lon.ndim
        with self.assertRaises(ValueError):
            R = Raster(lon, lat)

    def test_raster_no_Polygon(self):
        lon = np.random.random((10,20))
        lat = np.random.random((10,20))
        R = Raster(lon, lat)
        with self.assertRaises(ValueError):
            P = np.arange(10)
            R._rasterize_single_polygon(P)

    def test_raster_single_polygon(self):
        lon = np.linspace(-180., 180., 361)
        lat = np.linspace(-90., 90., 181)
        LON,LAT=np.meshgrid(lon, lat)

        # test a single polygon
        poly = [(-10.,-10.), (-10.,20), (15.,0.), (0.,-25.)]
        P = Polygon(5, poly)
        R=Raster(LON,LAT)
        R.mask = np.zeros(LON.shape)*np.nan
        R._rasterize_single_polygon(P)

        print np.unique(R.mask)
#.........这里部分代码省略.........
开发者ID:wk1984,项目名称:pycmbs,代码行数:103,代码来源:test_polygon.py

示例8: TestData

# 需要导入模块: from pycmbs.data import Data [as 别名]
# 或者: from pycmbs.data.Data import _init_sample_object [as 别名]
class TestData(unittest.TestCase):

    def setUp(self):
        self.nx = 20
        self.ny = 10
        self.tempfile = tempfile.mktemp(suffix='.nc')
        self.gfile1 = tempfile.mktemp(suffix='.nc')
        self.gfile2 = tempfile.mktemp(suffix='.nc')
        self.gfile3 = tempfile.mktemp(suffix='.nc')
        self.x = Data(None, None)
        self.x._init_sample_object(nt=10, ny=self.ny, nx=self.nx)
        self.x.save(self.tempfile, varname='myvar')

        # generate some arbitrary geometry file
        F = NetCDFHandler()
        F.open_file(self.gfile1, 'w')
        F.create_dimension('ny', size=self.ny)
        F.create_dimension('nx', size=self.nx)
        F.create_variable('lat', 'd', ('ny', 'nx'))
        F.create_variable('lon', 'd', ('ny', 'nx'))
        F.assign_value('lat', np.ones((self.ny,self.nx)) * 5.)
        F.assign_value('lon', np.ones((self.ny,self.nx)) * 3.)
        F.close()

        F = NetCDFHandler()
        F.open_file(self.gfile2, 'w')
        F.create_dimension('ny', size=self.ny)
        F.create_dimension('nx', size=self.nx)
        F.create_variable('latitude', 'd', ('ny', 'nx'))
        F.create_variable('longitude', 'd', ('ny', 'nx'))
        F.assign_value('latitude', np.ones((self.ny,self.nx)) * 7.)
        F.assign_value('longitude', np.ones((self.ny,self.nx)) * 8.)
        F.close()

        F = NetCDFHandler()
        F.open_file(self.gfile3, 'w')
        F.create_dimension('ny', size=self.ny*2)
        F.create_dimension('nx', size=self.nx*3)
        F.create_variable('latitude', 'd', ('ny', 'nx'))
        F.create_variable('longitude', 'd', ('ny', 'nx'))
        F.assign_value('latitude', np.ones((self.ny*2,self.nx*3)) * 7.)
        F.assign_value('longitude', np.ones((self.ny*2,self.nx*3)) * 8.)
        F.close()

    def test_read_coordinates(self):
        # read data normal
        x1 = Data(self.tempfile, 'myvar', read=True)
        self.assertEqual(x1.nx,self.nx)
        self.assertEqual(x1.ny,self.ny)

        # read data with separate geometry file 'lat', 'lon' names
        x2 = Data(self.tempfile, 'myvar', read=True, geometry_file=self.gfile1)
        self.assertTrue(np.all(x2.lat == 5.))
        self.assertTrue(np.all(x2.lon == 3.))

        # read data with separate geometry file 'latitude', 'longitude' names
        x3 = Data(self.tempfile, 'myvar', read=True, geometry_file=self.gfile2)
        self.assertTrue(np.all(x3.lat == 7.))
        self.assertTrue(np.all(x3.lon == 8.))

        # read data with separate geometry file 'lat', 'lon' names, invalid geometry
        with self.assertRaises(ValueError):
            x4 = Data(self.tempfile, 'myvar', read=True, geometry_file=self.gfile3)
开发者ID:wk1984,项目名称:pycmbs,代码行数:65,代码来源:test_read_coordinates.py


注:本文中的pycmbs.data.Data._init_sample_object方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。