Beispiel #1
0
 def test_get_wradlib_data_path(self):
     wrl_data_path = os.environ.get('WRADLIB_DATA', None)
     del os.environ['WRADLIB_DATA']
     with self.assertRaises(EnvironmentError):
         util.get_wradlib_data_path()
     filename = 'rainbow/2013070308340000dBuZ.azi'
     os.environ['WRADLIB_DATA'] = os.path.join(wrl_data_path, filename)
     with self.assertRaises(EnvironmentError):
         util.get_wradlib_data_path()
     os.environ['WRADLIB_DATA'] = wrl_data_path
     filename = os.path.join(wrl_data_path, "test.dat")
     with self.assertRaises(EnvironmentError):
         util.get_wradlib_data_file(filename)
Beispiel #2
0
    def test_get_vector_coordinates(self):
        filename = util.get_wradlib_data_file("shapefiles/agger/" "agger_merge.shp")
        ds, layer = wradlib.io.open_vector(filename)

        # this also tests equality with `ogr_to_numpy`
        x, attrs = georef.get_vector_coordinates(layer, key="FID")
        assert attrs == list(range(13))

        x, attrs = georef.get_vector_coordinates(layer)
        y = []
        layer.ResetReading()
        for i in range(layer.GetFeatureCount()):
            feature = layer.GetNextFeature()
            if feature:
                geom = feature.GetGeometryRef()
                y.append(georef.ogr_to_numpy(geom))
        y = np.array(y)
        for x1, y1 in zip(x, y):
            np.testing.assert_allclose(x1, y1)

        layer.ResetReading()
        x, attrs = georef.get_vector_coordinates(
            layer, source_srs=self.proj, dest_srs=self.wgs84
        )

        layer.ResetReading()
        x, attrs = georef.get_vector_coordinates(layer, dest_srs=self.wgs84)
Beispiel #3
0
class TestKNMIVolume(MeasuredDataVolume):
    if has_data:
        name = "hdf5/knmi_polar_volume.h5"
        format = "ODIM"
        volumes = 1
        sweeps = 14
        moments = ["DBZH"]
        elevations = [
            0.3,
            0.4,
            0.8,
            1.1,
            2.0,
            3.0,
            4.5,
            6.0,
            8.0,
            10.0,
            12.0,
            15.0,
            20.0,
            25.0,
        ]
        azimuths = [360] * sweeps
        ranges = [320, 240, 240, 240, 240, 340, 340, 300, 300, 240, 240, 240, 240, 240]

        data = io.read_generic_hdf5(util.get_wradlib_data_file(name))

        dsdesc = "dataset{}"
        mdesc = "data{}"
Beispiel #4
0
 def setUp(self):
     filename = 'geo/bonn_new.tif'
     geofile = util.get_wradlib_data_file(filename)
     self.ds = open_raster(geofile)
     (self.data, self.coords,
      self.proj) = georef.extract_raster_dataset(self.ds)
     self.x_sp, self.y_sp = self.coords[1, 1] - self.coords[0, 0]
Beispiel #5
0
class TestGamicVolume(MeasuredDataVolume):
    if has_data:
        name = "hdf5/DWD-Vol-2_99999_20180601054047_00.h5"
        format = "GAMIC"
        volumes = 1
        sweeps = 10
        moments = [
            "DBZH",
            "DBZV",
            "DBTH",
            "DBTV",
            "ZDR",
            "VRADH",
            "VRADV",
            "WRADH",
            "WRADV",
            "PHIDP",
            "KDP",
            "RHOHV",
        ]
        elevations = [28.0, 18.0, 14.0, 11.0, 8.2, 6.0, 4.5, 3.1, 1.7, 0.6]
        azimuths = [361, 361, 361, 360, 361, 360, 360, 361, 360, 360]
        ranges = [360, 500, 620, 800, 1050, 1400, 1000, 1000, 1000, 1000]

        data = io.read_generic_hdf5(util.get_wradlib_data_file(name))

        dsdesc = "scan{}"
        mdesc = "moment_{}"
Beispiel #6
0
 def test_ogr_copy_layer_by_name(self):
     filename = util.get_wradlib_data_file("shapefiles/agger/" "agger_merge.shp")
     src_ds, layer = wradlib.io.open_vector(filename)
     ds = wradlib.io.gdal_create_dataset("Memory", "test", gdal_type=gdal.OF_VECTOR)
     georef.ogr_copy_layer_by_name(src_ds, "agger_merge", ds)
     assert isinstance(ds.GetLayer(), ogr.Layer)
     with pytest.raises(ValueError):
         georef.ogr_copy_layer_by_name(src_ds, "agger_merge1", ds)
Beispiel #7
0
 def setUp(self):
     filename = 'geo/bonn_new.tif'
     geofile = util.get_wradlib_data_file(filename)
     self.ds = open_raster(geofile)
     (self.data,
      self.coords,
      self.proj) = georef.extract_raster_dataset(self.ds)
     self.x_sp, self.y_sp = self.coords[1, 1] - self.coords[0, 0]
 def test_correct_attenuation_hb(self):
     filestr = "dx/raa00-dx_10908-0806021655-fbg---bin.gz"
     filename = util.get_wradlib_data_file(filestr)
     gateset, attrs = io.read_dx(filename)
     atten.correct_attenuation_hb(gateset, mode='warn')
     atten.correct_attenuation_hb(gateset, mode='nan')
     atten.correct_attenuation_hb(gateset, mode='zero')
     with self.assertRaises(atten.AttenuationOverflowError):
         atten.correct_attenuation_hb(gateset, mode='except')
Beispiel #9
0
 def test_dump_raster(self):
     proj = osr.SpatialReference()
     proj.ImportFromEPSG(31466)
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     test = zonalstats.DataSource(filename, proj)
     self.assertRaises(AttributeError, test.dump_raster(
         tempfile.NamedTemporaryFile(mode='w+b').name, 'netCDF',
         pixel_size=100.))
Beispiel #10
0
 def test_dump_raster(self):
     proj = osr.SpatialReference()
     proj.ImportFromEPSG(31466)
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     test = zonalstats.DataSource(filename, proj)
     test.dump_raster(tempfile.NamedTemporaryFile(mode='w+b').name,
                      driver='netCDF',
                      pixel_size=100.)
Beispiel #11
0
 def test_correct_attenuation_hb(self):
     filestr = "dx/raa00-dx_10908-0806021655-fbg---bin.gz"
     filename = util.get_wradlib_data_file(filestr)
     gateset, attrs = io.read_dx(filename)
     atten.correct_attenuation_hb(gateset, mode="warn")
     atten.correct_attenuation_hb(gateset, mode="nan")
     atten.correct_attenuation_hb(gateset, mode="zero")
     with pytest.raises(atten.AttenuationOverflowError):
         atten.correct_attenuation_hb(gateset, mode="except")
Beispiel #12
0
 def test_filter_gabella(self):
     filename = util.get_wradlib_data_file('misc/polar_dBZ_fbg.gz')
     data = np.loadtxt(filename)
     clutter.filter_gabella(data,
                            wsize=5,
                            thrsnorain=0.,
                            tr1=6.,
                            n_p=8,
                            tr2=1.3)
Beispiel #13
0
 def test_get_geom_properties(self):
     proj = osr.SpatialReference()
     proj.ImportFromEPSG(31466)
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     test = zonalstats.DataSource(filename, proj)
     np.testing.assert_array_equal([[76722499.98474795]],
                                   test.get_geom_properties(['Area'],
                                                            filt=('FID',
                                                                  1)))
Beispiel #14
0
    def setUp(self):
        filename = 'geo/bonn_new.tif'
        geofile = util.get_wradlib_data_file(filename)
        self.ds = wradlib.io.open_raster(geofile)
        (self.data, self.coords,
         self.proj) = georef.extract_raster_dataset(self.ds)

        filename = 'hdf5/belgium.comp.hdf'
        geofile = util.get_wradlib_data_file(filename)
        self.ds2 = wradlib.io.open_raster(geofile)
        (self.data2, self.coords2,
         self.proj2) = georef.extract_raster_dataset(self.ds, mode="edge")
        self.corner_gdalinfo = np.array([[3e5, 1e6], [3e5, 3e5], [1e6, 3e5],
                                         [1e6, 1e6]])

        self.corner_geo_gdalinfo = np.array([[-0.925465, 53.6928559],
                                             [-0.266697, 47.4167912],
                                             [9.0028805, 47.4160381],
                                             [9.6641599, 53.6919969]])
Beispiel #15
0
 def test_dump_raster(self):
     proj = osr.SpatialReference()
     proj.ImportFromEPSG(31466)
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     test = zonalstats.DataSource(filename, srs=proj)
     test.dump_raster(tempfile.NamedTemporaryFile(mode='w+b').name,
                      driver='netCDF', pixel_size=100.)
     test.dump_raster(tempfile.NamedTemporaryFile(mode='w+b').name,
                      driver='netCDF', pixel_size=100., attr='FID')
Beispiel #16
0
 def test_get_geom_properties(self):
     proj = osr.SpatialReference()
     proj.ImportFromEPSG(31466)
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     test = zonalstats.DataSource(filename, proj)
     np.testing.assert_array_equal(
         [[76722499.98474795]],
         test.get_geom_properties(['Area'],
                                  filt=('FID', 1)))
Beispiel #17
0
def get_wradlib_data_file(file, file_or_filelike):
    datafile = util.get_wradlib_data_file(file)
    if file_or_filelike == "filelike":
        _open = open
        if datafile[-3:] == ".gz":
            gzip = util.import_optional("gzip")
            _open = gzip.open
        with _open(datafile, mode="r+b") as f:
            yield sio.BytesIO(f.read())
    else:
        yield datafile
Beispiel #18
0
class TestClassifyEchoFuzzyTest:
    if has_data:
        rhofile = util.get_wradlib_data_file("netcdf/TAG-20120801"
                                             "-140046-02-R.nc")
        phifile = util.get_wradlib_data_file("netcdf/TAG-20120801"
                                             "-140046-02-P.nc")
        reffile = util.get_wradlib_data_file("netcdf/TAG-20120801"
                                             "-140046-02-Z.nc")
        dopfile = util.get_wradlib_data_file("netcdf/TAG-20120801"
                                             "-140046-02-V.nc")
        zdrfile = util.get_wradlib_data_file("netcdf/TAG-20120801"
                                             "-140046-02-D.nc")
        mapfile = util.get_wradlib_data_file("hdf5/TAG_cmap_sweeps"
                                             "_0204050607.hdf5")
        # We need to organize our data as a dictionary
        dat = {}
        dat["rho"], attrs_rho = io.read_edge_netcdf(rhofile)
        dat["phi"], attrs_phi = io.read_edge_netcdf(phifile)
        dat["ref"], attrs_ref = io.read_edge_netcdf(reffile)
        dat["dop"], attrs_dop = io.read_edge_netcdf(dopfile)
        dat["zdr"], attrs_zdr = io.read_edge_netcdf(zdrfile)
        dat["map"] = io.from_hdf5(mapfile)[0][0]

    @requires_data
    def test_classify_echo_fuzzy(self):
        weights = {
            "zdr": 0.4,
            "rho": 0.4,
            "rho2": 0.4,
            "phi": 0.1,
            "dop": 0.1,
            "map": 0.5,
        }
        clutter.classify_echo_fuzzy(self.dat, weights=weights, thresh=0.5)
Beispiel #19
0
 def setUp(self):
     filename = 'dx/raa00-dx_10908-0806021655-fbg---bin.gz'
     dx_file = util.get_wradlib_data_file(filename)
     self.data, metadata = io.read_dx(dx_file)
     radar_location = (8.005, 47.8744, 1517)
     elevation = 0.5  # in degree
     azimuths = np.arange(0, 360)  # in degrees
     ranges = np.arange(0, 128000., 1000.)  # in meters
     polargrid = np.meshgrid(ranges, azimuths)
     coords, rad = georef.spherical_to_xyz(polargrid[0], polargrid[1],
                                           elevation, radar_location)
     self.x = coords[..., 0]
     self.y = coords[..., 1]
Beispiel #20
0
    def setUp(self):
        # read the radar volume scan
        filename = 'hdf5/20130429043000.rad.bewid.pvol.dbzh.scan1.hdf'
        filename = util.get_wradlib_data_file(filename)
        pvol = io.read_opera_hdf5(filename)
        nrays = int(pvol["dataset1/where"]["nrays"])
        nbins = int(pvol["dataset1/where"]["nbins"])
        val = pvol["dataset%d/data1/data" % (1)]
        gain = float(pvol["dataset1/data1/what"]["gain"])
        offset = float(pvol["dataset1/data1/what"]["offset"])
        self.val = val * gain + offset
        self.rscale = int(pvol["dataset1/where"]["rscale"])
        elangle = pvol["dataset%d/where" % (1)]["elangle"]
        coord = georef.sweep_centroids(nrays, self.rscale, nbins, elangle)
        sitecoords = (pvol["where"]["lon"], pvol["where"]["lat"],
                      pvol["where"]["height"])

        coord, proj_radar = georef.spherical_to_xyz(coord[..., 0],
                                                    coord[..., 1],
                                                    coord[..., 2],
                                                    sitecoords,
                                                    re=6370040.,
                                                    ke=4. / 3.)
        filename = 'hdf5/SAFNWC_MSG3_CT___201304290415_BEL_________.h5'
        filename = util.get_wradlib_data_file(filename)
        sat_gdal = io.read_safnwc(filename)
        val_sat = georef.read_gdal_values(sat_gdal)
        coord_sat = georef.read_gdal_coordinates(sat_gdal)
        proj_sat = georef.read_gdal_projection(sat_gdal)
        coord_sat = georef.reproject(coord_sat,
                                     projection_source=proj_sat,
                                     projection_target=proj_radar)
        coord_radar = coord
        interp = ipol.Nearest(coord_sat[..., 0:2].reshape(-1, 2),
                              coord_radar[..., 0:2].reshape(-1, 2))
        self.val_sat = interp(val_sat.ravel()).reshape(val.shape)
        timelag = 9 * 60
        wind = 10
        self.error = np.absolute(timelag) * wind
Beispiel #21
0
 def test_get_wradlib_data_path(self):
     wrl_data_path = os.environ.get('WRADLIB_DATA', None)
     del os.environ['WRADLIB_DATA']
     self.assertRaises(EnvironmentError,
                       lambda: util.get_wradlib_data_path())
     filename = 'rainbow/2013070308340000dBuZ.azi'
     os.environ['WRADLIB_DATA'] = os.path.join(wrl_data_path, filename)
     self.assertRaises(EnvironmentError,
                       lambda: util.get_wradlib_data_path())
     os.environ['WRADLIB_DATA'] = wrl_data_path
     filename = os.path.join(wrl_data_path, "test.dat")
     self.assertRaises(EnvironmentError,
                       lambda: util.get_wradlib_data_file(filename))
    def test_maximum_intensity_projection(self):
        angle = 0.0
        elev = 0.0

        filename = util.get_wradlib_data_file("misc/polar_dBZ_tur.gz")
        data = np.loadtxt(filename)
        # we need to have meter here for the georef function inside mip
        d1 = np.arange(data.shape[1], dtype=np.float) * 1000
        d2 = np.arange(data.shape[0], dtype=np.float)
        data = np.roll(data, (d2 >= angle).nonzero()[0][0], axis=0)

        # calculate max intensity proj
        georef.maximum_intensity_projection(data, r=d1, az=d2, angle=angle, elev=elev)
        georef.maximum_intensity_projection(data, autoext=False)
Beispiel #23
0
    def test_roll2d_polar(self):
        filename = util.get_wradlib_data_file("misc/polar_dBZ_tur.gz")
        data = np.loadtxt(filename)
        result1 = util.roll2d_polar(data, 1, axis=0)
        result2 = util.roll2d_polar(data, -1, axis=0)
        result3 = util.roll2d_polar(data, 1, axis=1)
        result4 = util.roll2d_polar(data, -1, axis=1)

        np.testing.assert_equal(result1, np.roll(data, 1, axis=0))
        np.testing.assert_equal(result2, np.roll(data, -1, axis=0))
        np.testing.assert_equal(result3[:, 1:],
                                np.roll(data, 1, axis=1)[:, 1:])
        np.testing.assert_equal(result4[:, :-1],
                                np.roll(data, -1, axis=1)[:, :-1])
Beispiel #24
0
    def test_roll2d_polar(self):
        filename = util.get_wradlib_data_file('misc/polar_dBZ_tur.gz')
        data = np.loadtxt(filename)
        result1 = util.roll2d_polar(data, 1, axis=0)
        result2 = util.roll2d_polar(data, -1, axis=0)
        result3 = util.roll2d_polar(data, 1, axis=1)
        result4 = util.roll2d_polar(data, -1, axis=1)

        np.testing.assert_equal(result1, np.roll(data, 1, axis=0))
        np.testing.assert_equal(result2, np.roll(data, -1, axis=0))
        np.testing.assert_equal(result3[:, 1:],
                                np.roll(data, 1, axis=1)[:, 1:])
        np.testing.assert_equal(result4[:, :-1],
                                np.roll(data, -1, axis=1)[:, :-1])
Beispiel #25
0
    def test_maximum_intensity_projection(self):
        angle = 0.0
        elev = 0.0

        filename = util.get_wradlib_data_file('misc/polar_dBZ_tur.gz')
        data = np.loadtxt(filename)
        # we need to have meter here for the georef function inside mip
        d1 = np.arange(data.shape[1], dtype=np.float) * 1000
        d2 = np.arange(data.shape[0], dtype=np.float)
        data = np.roll(data, (d2 >= angle).nonzero()[0][0], axis=0)

        # calculate max intensity proj
        util.maximum_intensity_projection(data, r=d1, az=d2,
                                          angle=angle, elev=elev)
        util.maximum_intensity_projection(data, autoext=False)
Beispiel #26
0
class TestGamicVolume(MeasuredDataVolume):
    name = 'hdf5/DWD-Vol-2_99999_20180601054047_00.h5'
    format = 'GAMIC'
    volumes = 1
    sweeps = 10
    moments = [
        'DBZH', 'DBZV', 'DBTH', 'DBTV', 'ZDR', 'VRADH', 'VRADV', 'WRADH',
        'WRADV', 'PHIDP', 'KDP', 'RHOHV'
    ]
    elevations = [28.0, 18.0, 14.0, 11.0, 8.2, 6.0, 4.5, 3.1, 1.7, 0.6]
    azimuths = [361, 361, 361, 360, 361, 360, 360, 361, 360, 360]
    ranges = [360, 500, 620, 800, 1050, 1400, 1000, 1000, 1000, 1000]

    data = io.read_generic_hdf5(util.get_wradlib_data_file(name))

    dsdesc = 'scan{}'
    mdesc = 'moment_{}'
Beispiel #27
0
 def test_dump_raster(self):
     proj = osr.SpatialReference()
     proj.ImportFromEPSG(31466)
     filename = util.get_wradlib_data_file("shapefiles/agger/"
                                           "agger_merge.shp")
     test = zonalstats.DataSource(filename, srs=proj)
     test.dump_raster(
         tempfile.NamedTemporaryFile(mode="w+b").name,
         driver="netCDF",
         pixel_size=100.0,
     )
     test.dump_raster(
         tempfile.NamedTemporaryFile(mode="w+b").name,
         driver="netCDF",
         pixel_size=100.0,
         attr="FID",
     )
Beispiel #28
0
    def setUp(self):
        filename = util.get_wradlib_data_file('misc/msf_xband.gz')
        msf = io.get_membership_functions(filename)
        self.msf_idp = msf[0, 0, :, 0]
        self.msf_obs = msf[..., 1:]

        self.hmca = np.array([[4.34960938, 15.68457031, 14.62988281],
                              [7.78125, 5.49902344, 5.03808594],
                              [0.49659729, 0.22286987, 0.86561584],
                              [-9.11071777, -1.60217285, 11.15356445],
                              [25.6, 25.6, 25.6]])

        self.msf_val = classify.msf_index_indep(self.msf_obs, self.msf_idp,
                                                self.hmca[0])
        self.fu = classify.fuzzyfi(self.msf_val, self.hmca)
        self.w = np.array([2., 1., 1., 1., 1.])
        self.prob = classify.probability(self.fu, self.w)
Beispiel #29
0
    def setUp(self):
        f = 'gpm/2A-CS-151E24S154E30S.GPM.Ku.V7-20170308.20141206-S095002-E095137.004383.V05A.HDF5'  # noqa
        gpm_file = util.get_wradlib_data_file(f)
        pr_data = read_generic_hdf5(gpm_file)
        pr_lon = pr_data['NS/Longitude']['data']
        pr_lat = pr_data['NS/Latitude']['data']
        zenith = pr_data['NS/PRE/localZenithAngle']['data']
        wgs84 = georef.get_default_projection()
        a = wgs84.GetSemiMajor()
        b = wgs84.GetSemiMinor()
        rad = georef.proj4_to_osr(
            ('+proj=aeqd +lon_0={lon:f} ' +
             '+lat_0={lat:f} +a={a:f} +b={b:f}' + '').format(lon=pr_lon[68, 0],
                                                             lat=pr_lat[68, 0],
                                                             a=a,
                                                             b=b))
        pr_x, pr_y = georef.reproject(pr_lon,
                                      pr_lat,
                                      projection_source=wgs84,
                                      projection_target=rad)
        self.re = georef.get_earth_radius(pr_lat[68, 0], wgs84) * 4. / 3.
        self.pr_xy = np.dstack((pr_x, pr_y))
        self.alpha = zenith
        self.zt = 407000.
        self.dr = 125.
        self.bw_pr = 0.71
        self.nbin = 176
        self.nray = pr_lon.shape[1]

        self.pr_out = np.array([[[[-58533.78453556, 124660.60390174],
                                  [-58501.33048429, 124677.58873852]],
                                 [[-53702.13393133, 127251.83656509],
                                  [-53670.98686161, 127268.11882882]]],
                                [[[-56444.00788528, 120205.5374491],
                                  [-56411.55421163, 120222.52300741]],
                                 [[-51612.2360682, 122796.78620764],
                                  [-51581.08938314, 122813.06920719]]]])
        self.r_out = np.array(
            [0., 125., 250., 375., 500., 625., 750., 875., 1000., 1125.])
        self.z_out = np.array([
            0., 119.51255112, 239.02510224, 358.53765337, 478.05020449,
            597.56275561, 717.07530673, 836.58785786, 956.10040898,
            1075.6129601
        ])
Beispiel #30
0
class TestKNMIVolume(MeasuredDataVolume):
    name = 'hdf5/knmi_polar_volume.h5'
    format = 'ODIM'
    volumes = 1
    sweeps = 14
    moments = ['DBZH']
    elevations = [
        0.3, 0.4, 0.8, 1.1, 2.0, 3.0, 4.5, 6.0, 8.0, 10.0, 12.0, 15.0, 20.0,
        25.0
    ]
    azimuths = [360] * sweeps
    ranges = [
        320, 240, 240, 240, 240, 340, 340, 300, 300, 240, 240, 240, 240, 240
    ]

    data = io.read_generic_hdf5(util.get_wradlib_data_file(name))

    dsdesc = 'dataset{}'
    mdesc = 'data{}'
Beispiel #31
0
    def setUp(self):
        f = 'gpm/2A-CS-151E24S154E30S.GPM.Ku.V7-20170308.20141206-S095002-E095137.004383.V05A.HDF5'  # noqa
        gpm_file = util.get_wradlib_data_file(f)
        pr_data = read_generic_hdf5(gpm_file)
        pr_lon = pr_data['NS/Longitude']['data']
        pr_lat = pr_data['NS/Latitude']['data']
        zenith = pr_data['NS/PRE/localZenithAngle']['data']
        wgs84 = georef.get_default_projection()
        a = wgs84.GetSemiMajor()
        b = wgs84.GetSemiMinor()
        rad = georef.proj4_to_osr(('+proj=aeqd +lon_0={lon:f} ' +
                                   '+lat_0={lat:f} +a={a:f} +b={b:f}' +
                                   '').format(lon=pr_lon[68, 0],
                                              lat=pr_lat[68, 0],
                                              a=a, b=b))
        pr_x, pr_y = georef.reproject(pr_lon, pr_lat,
                                      projection_source=wgs84,
                                      projection_target=rad)
        self.re = georef.get_earth_radius(pr_lat[68, 0], wgs84) * 4. / 3.
        self.pr_xy = np.dstack((pr_x, pr_y))
        self.alpha = zenith
        self.zt = 407000.
        self.dr = 125.
        self.bw_pr = 0.71
        self.nbin = 176
        self.nray = pr_lon.shape[1]

        self.pr_out = np.array([[[[-58533.78453556, 124660.60390174],
                                  [-58501.33048429, 124677.58873852]],
                                 [[-53702.13393133, 127251.83656509],
                                  [-53670.98686161, 127268.11882882]]],
                                [[[-56444.00788528, 120205.5374491],
                                  [-56411.55421163, 120222.52300741]],
                                 [[-51612.2360682, 122796.78620764],
                                  [-51581.08938314, 122813.06920719]]]])
        self.r_out = np.array([0., 125., 250., 375., 500., 625., 750., 875.,
                               1000., 1125.])
        self.z_out = np.array([0., 119.51255112, 239.02510224, 358.53765337,
                               478.05020449, 597.56275561, 717.07530673,
                               836.58785786, 956.10040898, 1075.6129601])
Beispiel #32
0
    def setUp(self):
        self.proj = osr.SpatialReference()
        self.proj.ImportFromEPSG(31466)
        self.wgs84 = georef.get_default_projection()

        self.npobj = np.array([[2600000., 5630000.], [2600000., 5630100.],
                               [2600100., 5630100.], [2600100., 5630000.],
                               [2600000., 5630000.]])
        self.lonlat = np.array([[7.41779154, 50.79679579],
                                [7.41781875, 50.79769443],
                                [7.4192367, 50.79767718],
                                [7.41920947, 50.79677854],
                                [7.41779154, 50.79679579]])

        self.ogrobj = georef.numpy_to_ogr(self.npobj, 'Polygon')
        self.ogrobj.AssignSpatialReference(None)
        self.projobj = georef.numpy_to_ogr(self.npobj, 'Polygon')
        self.projobj.AssignSpatialReference(self.proj)

        filename = util.get_wradlib_data_file('shapefiles/agger/'
                                              'agger_merge.shp')
        self.ds, self.layer = open_vector(filename)
Beispiel #33
0
    def setUp(self):
        self.proj = osr.SpatialReference()
        self.proj.ImportFromEPSG(31466)
        self.wgs84 = georef.get_default_projection()

        self.npobj = np.array([[2600000., 5630000.], [2600000., 5630100.],
                               [2600100., 5630100.], [2600100., 5630000.],
                               [2600000., 5630000.]])
        self.lonlat = np.array([[7.41779154, 50.79679579],
                                [7.41781875, 50.79769443],
                                [7.4192367, 50.79767718],
                                [7.41920947, 50.79677854],
                                [7.41779154, 50.79679579]])

        self.ogrobj = georef.numpy_to_ogr(self.npobj, 'Polygon')
        self.ogrobj.AssignSpatialReference(None)
        self.projobj = georef.numpy_to_ogr(self.npobj, 'Polygon')
        self.projobj.AssignSpatialReference(self.proj)

        filename = util.get_wradlib_data_file('shapefiles/agger/'
                                              'agger_merge.shp')
        self.ds, self.layer = open_vector(filename)
Beispiel #34
0
 def setUp(self):
     rhofile = util.get_wradlib_data_file('netcdf/TAG-20120801'
                                          '-140046-02-R.nc')
     phifile = util.get_wradlib_data_file('netcdf/TAG-20120801'
                                          '-140046-02-P.nc')
     reffile = util.get_wradlib_data_file('netcdf/TAG-20120801'
                                          '-140046-02-Z.nc')
     dopfile = util.get_wradlib_data_file('netcdf/TAG-20120801'
                                          '-140046-02-V.nc')
     zdrfile = util.get_wradlib_data_file('netcdf/TAG-20120801'
                                          '-140046-02-D.nc')
     mapfile = util.get_wradlib_data_file('hdf5/TAG_cmap_sweeps'
                                          '_0204050607.hdf5')
     # We need to organize our data as a dictionary
     dat = {}
     dat["rho"], attrs_rho = io.read_edge_netcdf(rhofile)
     dat["phi"], attrs_phi = io.read_edge_netcdf(phifile)
     dat["ref"], attrs_ref = io.read_edge_netcdf(reffile)
     dat["dop"], attrs_dop = io.read_edge_netcdf(dopfile)
     dat["zdr"], attrs_zdr = io.read_edge_netcdf(zdrfile)
     dat["map"] = io.from_hdf5(mapfile)[0][0]
     self.dat = dat
Beispiel #35
0
 def test__check_src(self):
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     self.assertEqual(len(zonalstats.DataSource(filename).data), 13)
     self.assertRaises(RuntimeError,
                       lambda: zonalstats.DataSource('test_zonalstats.py'))
Beispiel #36
0
 def test__check_src(self):
     filename = util.get_wradlib_data_file('shapefiles/agger/'
                                           'agger_merge.shp')
     self.assertEqual(len(zonalstats.DataSource(filename).data), 13)
     self.assertRaises(RuntimeError,
                       lambda: zonalstats.DataSource('test_zonalstats.py'))
Beispiel #37
0
 def test_histo_cut_test(self):
     filename = util.get_wradlib_data_file('misc/annual_rainfall_fbg.gz')
     yearsum = np.loadtxt(filename)
     clutter.histo_cut(yearsum)
Beispiel #38
0
 def test_get_wradlib_data_path_requires(self):
     filename = os.path.join(util.get_wradlib_data_path(), "test.dat")
     with pytest.raises(EnvironmentError):
         util.get_wradlib_data_file(filename)
Beispiel #39
0
from pcc import get_my_cmap
my_cmap2 = get_my_cmap()

def read_and_overview(filename):
    """Read NetCDF using read_generic_netcdf and print upper level dictionary keys
    """
    test = read_generic_netcdf(filename)
    print("\nPrint keys for file %s" % os.path.basename(filename))
    for key in test.keys():
        print("\t%s" % key)

pfad = ('/automount/ags/velibor/gpmdata/nicht3dComposit/*.nc')

pfad_3d = sorted(glob.glob(pfad))[1]

comp3d = get_wradlib_data_file(pfad_3d)
#read_and_overview(comp3d)

from netCDF4 import Dataset
import numpy as np

comp3d = Dataset(pfad_3d, mode='r')

x = comp3d.variables['x'][:][300:600]
y = comp3d.variables['y'][:][300:600]
z = comp3d.variables['z'][:][1:60]

zh = comp3d['cband_oase_zh'][1:60,300:600,300:600]

#rwdata = np.ma.masked_equal(rwdata, -9999) / 2 - 32.5
'''
Beispiel #40
0

def read_and_overview(filename):
    """Read NetCDF using read_generic_netcdf and print upper level dictionary keys
    """
    test = read_generic_netcdf(filename)
    print("\nPrint keys for file %s" % os.path.basename(filename))
    for key in test.keys():
        print("\t%s" % key)


pfad = ('/automount/ags/velibor/gpmdata/nicht3dComposit/*.nc')

pfad_3d = sorted(glob.glob(pfad))[1]

comp3d = get_wradlib_data_file(pfad_3d)
#read_and_overview(comp3d)

from netCDF4 import Dataset
import numpy as np

comp3d = Dataset(pfad_3d, mode='r')

x = comp3d.variables['x'][:][300:600]
y = comp3d.variables['y'][:][300:600]
z = comp3d.variables['z'][:][1:60]

zh = comp3d['cband_oase_zh'][1:60, 300:600, 300:600]

#rwdata = np.ma.masked_equal(rwdata, -9999) / 2 - 32.5
'''
Beispiel #41
0
def get_measured_volume(file, get_loader, format):
    h5file = util.get_wradlib_data_file(file)
    yield io.xarray.open_odim(h5file, loader=get_loader, flavour=format)