Exemplo n.º 1
0
    def __init__(self,
                 filename,
                 gdalDataset,
                 gdalMetadata,
                 wavelengths=[
                     None, 413, 443, 490, 510, 560, 620, 665, 681, 709, 753,
                     None, 778, 864
                 ],
                 **kwargs):

        fPathName, fExt = os.path.splitext(filename)
        fPath, fName = os.path.split(fPathName)
        if fExt != '.nc' or 'MER_' not in fName or 'N1_C2IOP' not in fName:
            raise WrongMapperError

        # get all metadata using the GENERIC Mapper
        mg.Mapper.__init__(self, filename, gdalDataset, gdalMetadata)

        #add metadata for Rrs bands
        rrsDict = pti.get_wkv_variable(
            'surface_ratio_of_upwelling_radiance_emerging_from_sea_water_to_downwelling_radiative_flux_in_air'
        )

        for bi in range(1, 1 + self.dataset.RasterCount):
            b = self.dataset.GetRasterBand(bi)
            bMetadata = b.GetMetadata()
            rawName = bMetadata.get('name', '')
            if 'reflec_' in rawName:
                refNumber = int(rawName.split('_')[1])
                wavelength = wavelengths[refNumber]
                b.SetMetadataItem('name', 'Rrs_' + str(wavelength))
                b.SetMetadataItem('wavelength', str(wavelength))
                for rrsKey in rrsDict:
                    b.SetMetadata(rrsKey, rrsDict[rrsKey])

                src = [{
                    'SourceFilename': b.GetMetadataItem('SourceFilename'),
                    'SourceBand': b.GetMetadataItem('SourceBand'),
                    'DataType': 6
                }]
                dst = {
                    'wkv':
                    'surface_ratio_of_upwelling_radiance_emerging_from_sea_water_to_downwelling_radiative_flux_in_water',
                    'suffix': str(wavelength),
                    'wavelength': str(wavelength),
                    'PixelFunctionType': 'NormReflectanceToRemSensReflectance'
                }
                self.create_band(src, dst)

        self.dataset.FlushCache()
Exemplo n.º 2
0
def get_cf_or_wkv_standard_name(keyword):
    """return the values of a dataset parameter in a standard way from the
    standards that are defined in the pti package based on the keyword that has been passed to it.
    For example, it returns something like:

    'standard_name':'sea_ice_area_fraction'
    'canonical_units':'1'
    'description':"X_area_fraction"

    as the result_values.
    """
    try:
        result_values = pti.get_cf_standard_name(keyword)
    except IndexError:
        result_values = pti.get_wkv_variable(keyword)
    return result_values
Exemplo n.º 3
0
    def __init__(self, fileName, gdalDataset, gdalMetadata,
                 wavelengths=[None, 413, 443, 490, 510, 560, 620, 665,
                              681, 709, 753, None, 778, 864], **kwargs):

        fPathName, fExt = os.path.splitext(fileName)
        fPath, fName = os.path.split(fPathName)
        if fExt != '.nc' or 'MER_' not in fName or 'N1_C2IOP' not in fName:
            raise WrongMapperError

        # get all metadata using the GENERIC Mapper
        mg.Mapper.__init__(self, fileName, gdalDataset, gdalMetadata)

        #add metadata for Rrs bands
        rrsDict = pti.get_wkv_variable('surface_ratio_of_upwelling_radiance_emerging_from_sea_water_to_downwelling_radiative_flux_in_air')

        for bi in range(1, 1+self.dataset.RasterCount):
            b = self.dataset.GetRasterBand(bi)
            bMetadata = b.GetMetadata()
            rawName = bMetadata.get('name', '')
            if 'reflec_' in rawName:
                refNumber = int(rawName.split('_')[1])
                wavelength = wavelengths[refNumber]
                b.SetMetadataItem('name', 'Rrs_' + str(wavelength))
                b.SetMetadataItem('wavelength', str(wavelength))
                for rrsKey in rrsDict:
                    b.SetMetadata(rrsKey, rrsDict[rrsKey])

                src = [{
                    'SourceFilename': b.GetMetadataItem('SourceFilename'),
                    'SourceBand':  b.GetMetadataItem('SourceBand'),
                    'DataType': 6}]
                dst = {
                    'wkv': 'surface_ratio_of_upwelling_radiance_emerging_from_sea_water_to_downwelling_radiative_flux_in_water',
                    'suffix': str(wavelength),
                    'wavelength': str(wavelength),
                    'PixelFunctionType': 'NormReflectanceToRemSensReflectance'}
                self._create_band(src, dst)

        self.dataset.FlushCache()
Exemplo n.º 4
0
 def get_dataset_parameters(self, raw_metadata):
     return [pti.get_wkv_variable('sea_surface_height_above_sea_level')]
 def test_get_wkv_latitude(self):
     item = 'latitude'
     self.assertIsInstance(pti.get_wkv_variable(item),
             collections.OrderedDict)
 def test_get_wkv_variable(self):
     item = 'surface_backwards_doppler_frequency_shift_of_radar_wave_due_to_surface_velocity'
     self.assertIsInstance(pti.get_wkv_variable(item),
             collections.OrderedDict)
Exemplo n.º 7
0
 def test_get_wkv_latitude(self):
     item = 'latitude'
     self.assertIsInstance(pti.get_wkv_variable(item),
             collections.OrderedDict)
Exemplo n.º 8
0
 def test_get_wkv_variable(self):
     item = 'surface_backwards_doppler_frequency_shift_of_radar_wave_due_to_surface_velocity'
     self.assertIsInstance(pti.get_wkv_variable(item),
             collections.OrderedDict)
Exemplo n.º 9
0
 def get_dataset_parameters(self, raw_metadata):
     return [
         pti.get_wkv_variable(
             'surface_backwards_scattering_coefficient_of_radar_wave')
     ]