コード例 #1
0
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        file_content = {
            '/attr/PlatformShortName': 'GCOM-W1',
            '/attr/SensorShortName': 'AMSR2',
            '/attr/StartOrbitNumber': '22210',
            '/attr/StopOrbitNumber': '22210',
        }
        k = 'Geophysical Data'
        file_content[k] = DEFAULT_FILE_DATA[:, :]
        file_content[k + '/shape'] = (DEFAULT_FILE_SHAPE[0], DEFAULT_FILE_SHAPE[1])
        file_content[k + '/attr/UNIT'] = 'K'
        file_content[k + '/attr/SCALE FACTOR'] = 1

        k = 'Latitude of Observation Point'
        file_content[k] = DEFAULT_FILE_DATA[:, :]
        file_content[k + '/shape'] = (DEFAULT_FILE_SHAPE[0], DEFAULT_FILE_SHAPE[1])
        file_content[k + '/attr/UNIT'] = 'deg'
        file_content[k + '/attr/SCALE FACTOR'] = 1
        k = 'Longitude of Observation Point'
        file_content[k] = DEFAULT_FILE_DATA[:, :]
        file_content[k + '/shape'] = (DEFAULT_FILE_SHAPE[0], DEFAULT_FILE_SHAPE[1])
        file_content[k + '/attr/UNIT'] = 'deg'
        file_content[k + '/attr/SCALE FACTOR'] = 1

        convert_file_content_to_data_array(file_content, dims=('dim_0', 'dim_1'))
        return file_content
コード例 #2
0
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content"""
        dt = filename_info.get('start_time', datetime(2016, 1, 1, 12, 0, 0))
        sat, inst = {
            'VIIRS_NPP': ('NPP', 'VIIRS'),
        }[filename_info['sensor_id']]

        file_content = {
            '/attr/platform':
            sat,
            '/attr/sensor':
            inst,
            '/attr/spatial_resolution':
            '742 m at nadir',
            '/attr/time_coverage_start':
            dt.strftime('%Y%m%dT%H%M%SZ'),
            '/attr/time_coverage_end':
            (dt + timedelta(minutes=6)).strftime('%Y%m%dT%H%M%SZ'),
        }

        file_content['lat'] = DEFAULT_LAT_DATA
        file_content['lat/attr/comment'] = 'Latitude of retrievals'
        file_content['lat/attr/long_name'] = 'latitude'
        file_content['lat/attr/standard_name'] = 'latitude'
        file_content['lat/attr/units'] = 'degrees_north'
        file_content['lat/attr/valid_min'] = -90.
        file_content['lat/attr/valid_max'] = 90.
        file_content['lat/shape'] = DEFAULT_FILE_SHAPE

        file_content['lon'] = DEFAULT_LON_DATA
        file_content['lon/attr/comment'] = 'Longitude of retrievals'
        file_content['lon/attr/long_name'] = 'longitude'
        file_content['lon/attr/standard_name'] = 'longitude'
        file_content['lon/attr/units'] = 'degrees_east'
        file_content['lon/attr/valid_min'] = -180.
        file_content['lon/attr/valid_max'] = 180.
        file_content['lon/shape'] = DEFAULT_FILE_SHAPE

        for k in [
                'sea_surface_temperature', 'satellite_zenith_angle',
                'sea_ice_fraction', 'wind_speed'
        ]:
            file_content[k] = DEFAULT_FILE_DATA[None, ...]
            file_content[k + '/attr/scale_factor'] = 1.1
            file_content[k + '/attr/add_offset'] = 0.1
            file_content[k + '/attr/units'] = 'some_units'
            file_content[k + '/attr/comment'] = 'comment'
            file_content[k + '/attr/standard_name'] = 'standard_name'
            file_content[k + '/attr/long_name'] = 'long_name'
            file_content[k + '/attr/valid_min'] = 0
            file_content[k + '/attr/valid_max'] = 65534
            file_content[k + '/attr/_FillValue'] = 65534
            file_content[k + '/shape'] = (1, DEFAULT_FILE_SHAPE[0],
                                          DEFAULT_FILE_SHAPE[1])

        file_content['l2p_flags'] = np.zeros(
            (1, DEFAULT_FILE_SHAPE[0], DEFAULT_FILE_SHAPE[1]), dtype=np.uint16)

        convert_file_content_to_data_array(file_content)
        return file_content
コード例 #3
0
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content"""
        file_content = {}
        if 'SO2NRT' in filename:
            k = 'HDFEOS/SWATHS/OMPS Column Amount SO2/Data Fields/ColumnAmountSO2_TRM'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/ScaleFactor'] = 1.1
            file_content[k + '/attr/Offset'] = 0.1
            file_content[k + '/attr/MissingValue'] = -1
            file_content[k + '/attr/Title'] = 'Vertical Column Amount SO2 (TRM)'
            file_content[k + '/attr/Units'] = 'D.U.'
            file_content[k + '/attr/ValidRange'] = (-10, 2000)
            k = 'HDFEOS/SWATHS/OMPS Column Amount SO2/Geolocation Fields/Longitude'
            file_content[k] = DEFAULT_LON_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/ScaleFactor'] = 1.1
            file_content[k + '/attr/Offset'] = 0.1
            file_content[k + '/attr/Units'] = 'deg'
            file_content[k + '/attr/MissingValue'] = -1
            file_content[k + '/attr/Title'] = 'Geodetic Longitude'
            file_content[k + '/attr/ValidRange'] = (-180, 180)
            k = 'HDFEOS/SWATHS/OMPS Column Amount SO2/Geolocation Fields/Latitude'
            file_content[k] = DEFAULT_LAT_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/ScaleFactor'] = 1.1
            file_content[k + '/attr/Offset'] = 0.1
            file_content[k + '/attr/Units'] = 'deg'
            file_content[k + '/attr/MissingValue'] = -1
            file_content[k + '/attr/Title'] = 'Geodetic Latitude'
            file_content[k + '/attr/ValidRange'] = (-90, 90)
        else:
            for k in ['Reflectivity331', 'UVAerosolIndex']:
                k = 'SCIENCE_DATA/' + k
                file_content[k] = DEFAULT_FILE_DATA
                file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
                file_content[k + '/attr/Units'] = 'Unitless'
                if k == 'UVAerosolIndex':
                    file_content[k + '/attr/ValidRange'] = (-30, 30)
                    file_content[k + '/attr/Title'] = 'UV Aerosol Index'
                else:
                    file_content[k + '/attr/ValidRange'] = (-0.15, 1.15)
                    file_content[k + '/attr/Title'] = 'Effective Surface Reflectivity at 331 nm'
                file_content[k + '/attr/_FillValue'] = -1.
            file_content['GEOLOCATION_DATA/Longitude'] = DEFAULT_LON_DATA
            file_content['GEOLOCATION_DATA/Longitude/shape'] = DEFAULT_FILE_SHAPE
            file_content['GEOLOCATION_DATA/Longitude/attr/ValidRange'] = (-180, 180)
            file_content['GEOLOCATION_DATA/Longitude/attr/_FillValue'] = -999.
            file_content['GEOLOCATION_DATA/Longitude/attr/Title'] = 'Geodetic Longitude'
            file_content['GEOLOCATION_DATA/Longitude/attr/Units'] = 'deg'
            file_content['GEOLOCATION_DATA/Latitude'] = DEFAULT_LAT_DATA
            file_content['GEOLOCATION_DATA/Latitude/shape'] = DEFAULT_FILE_SHAPE
            file_content['GEOLOCATION_DATA/Latitude/attr/ValidRange'] = (-90, 90)
            file_content['GEOLOCATION_DATA/Latitude/attr/_FillValue'] = -999.
            file_content['GEOLOCATION_DATA/Latitude/attr/Title'] = 'Geodetic Latitude'
            file_content['GEOLOCATION_DATA/Latitude/attr/Units'] = 'deg'

        convert_file_content_to_data_array(file_content)
        return file_content
コード例 #4
0
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        file_content = {
            '/attr/PlatformShortName': 'GCOM-W1',
            '/attr/SensorShortName': 'AMSR2',
            '/attr/StartOrbitNumber': '22210',
            '/attr/StopOrbitNumber': '22210',
        }
        for bt_chan in [
                '(10.7GHz,H)',
                '(10.7GHz,V)',
                '(18.7GHz,H)',
                '(18.7GHz,V)',
                '(23.8GHz,H)',
                '(23.8GHz,V)',
                '(36.5GHz,H)',
                '(36.5GHz,V)',
                '(6.9GHz,H)',
                '(6.9GHz,V)',
                '(7.3GHz,H)',
                '(7.3GHz,V)',
                '(89.0GHz-A,H)',
                '(89.0GHz-A,V)',
                '(89.0GHz-B,H)',
                '(89.0GHz-B,V)',
        ]:
            k = 'Brightness Temperature {}'.format(bt_chan)
            file_content[k] = DEFAULT_FILE_DATA[:, ::2]
            file_content[k + '/shape'] = (DEFAULT_FILE_SHAPE[0],
                                          DEFAULT_FILE_SHAPE[1] // 2)
            file_content[k + '/attr/UNIT'] = 'K'
            file_content[k + '/attr/SCALE FACTOR'] = 0.01
        for bt_chan in [
                '(89.0GHz-A,H)',
                '(89.0GHz-A,V)',
                '(89.0GHz-B,H)',
                '(89.0GHz-B,V)',
        ]:
            k = 'Brightness Temperature {}'.format(bt_chan)
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/UNIT'] = 'K'
            file_content[k + '/attr/SCALE FACTOR'] = 0.01
        for nav_chan in ['89A', '89B']:
            lon_k = 'Longitude of Observation Point for ' + nav_chan
            lat_k = 'Latitude of Observation Point for ' + nav_chan
            file_content[lon_k] = DEFAULT_LON_DATA
            file_content[lon_k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[lon_k + '/attr/SCALE FACTOR'] = 1
            file_content[lon_k + '/attr/UNIT'] = 'deg'
            file_content[lat_k] = DEFAULT_LAT_DATA
            file_content[lat_k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[lat_k + '/attr/SCALE FACTOR'] = 1
            file_content[lat_k + '/attr/UNIT'] = 'deg'

        convert_file_content_to_data_array(file_content)
        return file_content
コード例 #5
0
ファイル: test_viirs_l1b.py プロジェクト: pepephillips/satpy
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        dt = filename_info.get('start_time', datetime(2016, 1, 1, 12, 0, 0))
        file_type = filename[:5].lower()
        # num_lines = {
        #     'vl1bi': 3248 * 2,
        #     'vl1bm': 3248,
        #     'vl1bd': 3248,
        # }[file_type]
        # num_pixels = {
        #     'vl1bi': 6400,
        #     'vl1bm': 3200,
        #     'vl1bd': 4064,
        # }[file_type]
        # num_scans = 203
        # num_luts = 65536
        num_lines = DEFAULT_FILE_SHAPE[0]
        num_pixels = DEFAULT_FILE_SHAPE[1]
        num_scans = 5
        num_luts = DEFAULT_FILE_SHAPE[0] * DEFAULT_FILE_SHAPE[1]
        file_content = {
            '/dimension/number_of_scans':
            num_scans,
            '/dimension/number_of_lines':
            num_lines,
            '/dimension/number_of_pixels':
            num_pixels,
            '/dimension/number_of_LUT_values':
            num_luts,
            '/attr/time_coverage_start':
            dt.strftime('%Y-%m-%dT%H:%M:%S.000Z'),
            '/attr/time_coverage_end':
            (dt + timedelta(minutes=6)).strftime('%Y-%m-%dT%H:%M:%S.000Z'),
            '/attr/orbit_number':
            26384,
            '/attr/instrument':
            'viirs',
            '/attr/platform':
            'Suomi-NPP',
        }
        self._fill_contents_with_default_data(file_content, file_type)

        self._set_dataset_specific_metadata(file_content)

        convert_file_content_to_data_array(file_content)
        return file_content
コード例 #6
0
    def get_test_content(self, filename, filename_info, filename_type):
        """Mimic reader input file content"""
        file_content = {}
        file_content['/attr/data_id'] = "AFIMG"
        file_content['satellite_name'] = "npp"
        file_content['sensor'] = 'VIIRS'

        file_content['FP_latitude'] = DEFAULT_LATLON_FILE_DATA
        file_content['FP_longitude'] = DEFAULT_LATLON_FILE_DATA
        file_content['FP_power'] = DEFAULT_POWER_FILE_DATA
        file_content['FP_T4'] = DEFAULT_M13_FILE_DATA
        file_content['FP_confidence'] = DEFAULT_DETECTION_FILE_DATA

        attrs = ('FP_latitude', 'FP_longitude',  'FP_T13', 'FP_confidence')
        convert_file_content_to_data_array(
            file_content, attrs=attrs,
            dims=('z', 'fakeDim0', 'fakeDim1'))
        return file_content
コード例 #7
0
    def get_test_content(self, filename, filename_info, filename_type):
        """Mimic reader input file content."""
        file_content = {}
        file_content['/attr/data_id'] = "AFMOD"
        file_content['satellite_name'] = "npp"
        file_content['sensor'] = 'VIIRS'

        file_content['Fire Pixels/FP_latitude'] = DEFAULT_LATLON_FILE_DATA
        file_content['Fire Pixels/FP_longitude'] = DEFAULT_LATLON_FILE_DATA
        file_content['Fire Pixels/FP_power'] = DEFAULT_POWER_FILE_DATA
        file_content['Fire Pixels/FP_T13'] = DEFAULT_M13_FILE_DATA
        file_content['Fire Pixels/FP_T13/attr/units'] = 'kelvins'
        file_content['Fire Pixels/FP_confidence'] = DEFAULT_DETECTION_FILE_DATA
        file_content['Fire Pixels/attr/units'] = 'none'
        file_content['Fire Pixels/shape'] = DEFAULT_FILE_SHAPE

        attrs = ('FP_latitude', 'FP_longitude', 'FP_T13', 'FP_confidence')
        convert_file_content_to_data_array(file_content,
                                           attrs=attrs,
                                           dims=('z', 'fakeDim0', 'fakeDim1'))
        return file_content
コード例 #8
0
ファイル: test_omps_edr.py プロジェクト: zhuwenjian/satpy
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        file_content = {}
        attrs = []
        if 'SO2NRT' in filename:
            k = 'HDFEOS/SWATHS/OMPS Column Amount SO2/Data Fields/ColumnAmountSO2_TRM'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/ScaleFactor'] = 1.1
            file_content[k + '/attr/Offset'] = 0.1
            file_content[k + '/attr/MissingValue'] = -1
            file_content[k +
                         '/attr/Title'] = 'Vertical Column Amount SO2 (TRM)'
            file_content[k + '/attr/Units'] = 'D.U.'
            file_content[k + '/attr/ValidRange'] = (-10, 2000)
            k = 'HDFEOS/SWATHS/OMPS Column Amount SO2/Geolocation Fields/Longitude'
            file_content[k] = DEFAULT_LON_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/ScaleFactor'] = 1.1
            file_content[k + '/attr/Offset'] = 0.1
            file_content[k + '/attr/Units'] = 'deg'
            file_content[k + '/attr/MissingValue'] = -1
            file_content[k + '/attr/Title'] = 'Geodetic Longitude'
            file_content[k + '/attr/ValidRange'] = (-180, 180)
            k = 'HDFEOS/SWATHS/OMPS Column Amount SO2/Geolocation Fields/Latitude'
            file_content[k] = DEFAULT_LAT_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/ScaleFactor'] = 1.1
            file_content[k + '/attr/Offset'] = 0.1
            file_content[k + '/attr/Units'] = 'deg'
            file_content[k + '/attr/MissingValue'] = -1
            file_content[k + '/attr/Title'] = 'Geodetic Latitude'
            file_content[k + '/attr/ValidRange'] = (-90, 90)
        elif 'NMSO2' in filename:
            file_content['GEOLOCATION_DATA/Longitude'] = DEFAULT_LON_DATA
            file_content[
                'GEOLOCATION_DATA/Longitude/shape'] = DEFAULT_FILE_SHAPE
            file_content['GEOLOCATION_DATA/Longitude/attr/valid_max'] = 180
            file_content['GEOLOCATION_DATA/Longitude/attr/valid_min'] = -180
            file_content[
                'GEOLOCATION_DATA/Longitude/attr/_FillValue'] = -1.26765e+30
            file_content[
                'GEOLOCATION_DATA/Longitude/attr/long_name'] = 'Longitude'
            file_content[
                'GEOLOCATION_DATA/Longitude/attr/standard_name'] = 'longitude'
            file_content[
                'GEOLOCATION_DATA/Longitude/attr/units'] = 'degrees_east'
            file_content['GEOLOCATION_DATA/Latitude'] = DEFAULT_LAT_DATA
            file_content[
                'GEOLOCATION_DATA/Latitude/shape'] = DEFAULT_FILE_SHAPE
            file_content['GEOLOCATION_DATA/Latitude/attr/valid_max'] = 90
            file_content['GEOLOCATION_DATA/Latitude/attr/valid_min'] = -90
            file_content[
                'GEOLOCATION_DATA/Latitude/attr/_FillValue'] = -1.26765e+30
            file_content[
                'GEOLOCATION_DATA/Latitude/attr/long_name'] = 'Latitude'
            file_content[
                'GEOLOCATION_DATA/Latitude/attr/standard_name'] = 'latitude'
            file_content[
                'GEOLOCATION_DATA/Latitude/attr/units'] = 'degress_north'

            k = 'SCIENCE_DATA/ColumnAmountSO2_TRM'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/_FillValue'] = -1.26765e+30
            file_content[k + '/attr/long_name'] = 'Column Amount SO2 (TRM)'
            file_content[k + '/attr/units'] = 'DU'
            file_content[k + '/attr/valid_max'] = 2000
            file_content[k + '/attr/valid_min'] = -10

            k = 'SCIENCE_DATA/ColumnAmountSO2_STL'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/_FillValue'] = -1.26765e+30
            file_content[k + '/attr/long_name'] = 'Column Amount SO2 (STL)'
            file_content[k + '/attr/units'] = 'DU'

            k = 'SCIENCE_DATA/ColumnAmountSO2_TRL'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/_FillValue'] = -1.26765e+30
            file_content[k + '/attr/long_name'] = 'Column Amount SO2 (TRL)'
            file_content[k + '/attr/units'] = 'DU'
            file_content[k + '/attr/valid_max'] = 2000
            file_content[k + '/attr/valid_min'] = -10
            file_content[k + '/attr/DIMENSION_LIST'] = [10, 10]
            attrs = [
                '_FillValue', 'long_name', 'units', 'valid_max', 'valid_min',
                'DIMENSION_LIST'
            ]

            k = 'SCIENCE_DATA/ColumnAmountSO2_TRU'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/long_name'] = 'Column Amount SO2 (TRU)'
            file_content[k + '/attr/units'] = 'DU'
            file_content[k + '/attr/valid_max'] = 2000
            file_content[k + '/attr/valid_min'] = -10

            # Dataset with out unit
            k = 'SCIENCE_DATA/ColumnAmountSO2_PBL'
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/_FillValue'] = -1.26765e+30
            file_content[k + '/attr/long_name'] = 'Column Amount SO2 (PBL)'
            file_content[k + '/attr/valid_max'] = 2000
            file_content[k + '/attr/valid_min'] = -10
        else:
            for k in ['Reflectivity331', 'UVAerosolIndex']:
                k = 'SCIENCE_DATA/' + k
                file_content[k] = DEFAULT_FILE_DATA
                file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
                file_content[k + '/attr/Units'] = 'Unitless'
                if k == 'UVAerosolIndex':
                    file_content[k + '/attr/ValidRange'] = (-30, 30)
                    file_content[k + '/attr/Title'] = 'UV Aerosol Index'
                else:
                    file_content[k + '/attr/ValidRange'] = (-0.15, 1.15)
                    file_content[
                        k +
                        '/attr/Title'] = 'Effective Surface Reflectivity at 331 nm'
                file_content[k + '/attr/_FillValue'] = -1.
            file_content['GEOLOCATION_DATA/Longitude'] = DEFAULT_LON_DATA
            file_content[
                'GEOLOCATION_DATA/Longitude/shape'] = DEFAULT_FILE_SHAPE
            file_content['GEOLOCATION_DATA/Longitude/attr/ValidRange'] = (-180,
                                                                          180)
            file_content['GEOLOCATION_DATA/Longitude/attr/_FillValue'] = -999.
            file_content[
                'GEOLOCATION_DATA/Longitude/attr/Title'] = 'Geodetic Longitude'
            file_content['GEOLOCATION_DATA/Longitude/attr/Units'] = 'deg'
            file_content['GEOLOCATION_DATA/Latitude'] = DEFAULT_LAT_DATA
            file_content[
                'GEOLOCATION_DATA/Latitude/shape'] = DEFAULT_FILE_SHAPE
            file_content['GEOLOCATION_DATA/Latitude/attr/ValidRange'] = (-90,
                                                                         90)
            file_content['GEOLOCATION_DATA/Latitude/attr/_FillValue'] = -999.
            file_content[
                'GEOLOCATION_DATA/Latitude/attr/Title'] = 'Geodetic Latitude'
            file_content['GEOLOCATION_DATA/Latitude/attr/Units'] = 'deg'

        convert_file_content_to_data_array(file_content, attrs)
        return file_content
コード例 #9
0
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        dt = filename_info.get('start_time', datetime(2016, 1, 1, 12, 0, 0))
        file_type = filename[:5].lower()
        # num_lines = {
        #     'vl1bi': 3248 * 2,
        #     'vl1bm': 3248,
        #     'vl1bd': 3248,
        # }[file_type]
        # num_pixels = {
        #     'vl1bi': 6400,
        #     'vl1bm': 3200,
        #     'vl1bd': 4064,
        # }[file_type]
        # num_scans = 203
        # num_luts = 65536
        num_lines = DEFAULT_FILE_SHAPE[0]
        num_pixels = DEFAULT_FILE_SHAPE[1]
        num_scans = 5
        num_luts = DEFAULT_FILE_SHAPE[0] * DEFAULT_FILE_SHAPE[1]
        file_content = {
            '/dimension/number_of_scans':
            num_scans,
            '/dimension/number_of_lines':
            num_lines,
            '/dimension/number_of_pixels':
            num_pixels,
            '/dimension/number_of_LUT_values':
            num_luts,
            '/attr/time_coverage_start':
            dt.strftime('%Y-%m-%dT%H:%M:%S.000Z'),
            '/attr/time_coverage_end':
            (dt + timedelta(minutes=6)).strftime('%Y-%m-%dT%H:%M:%S.000Z'),
            '/attr/orbit_number':
            26384,
            '/attr/instrument':
            'viirs',
            '/attr/platform':
            'Suomi-NPP',
        }
        if file_type.startswith('vgeo'):
            file_content['/attr/OrbitNumber'] = file_content.pop(
                '/attr/orbit_number')
            file_content['geolocation_data/latitude'] = DEFAULT_LAT_DATA
            file_content['geolocation_data/longitude'] = DEFAULT_LON_DATA
        elif file_type == 'vl1bm':
            file_content['observation_data/M01'] = DEFAULT_FILE_DATA
            file_content['observation_data/M02'] = DEFAULT_FILE_DATA
            file_content['observation_data/M03'] = DEFAULT_FILE_DATA
            file_content['observation_data/M04'] = DEFAULT_FILE_DATA
            file_content['observation_data/M05'] = DEFAULT_FILE_DATA
            file_content['observation_data/M06'] = DEFAULT_FILE_DATA
            file_content['observation_data/M07'] = DEFAULT_FILE_DATA
            file_content['observation_data/M08'] = DEFAULT_FILE_DATA
            file_content['observation_data/M09'] = DEFAULT_FILE_DATA
            file_content['observation_data/M10'] = DEFAULT_FILE_DATA
            file_content['observation_data/M11'] = DEFAULT_FILE_DATA
            file_content['observation_data/M12'] = DEFAULT_FILE_DATA
            file_content['observation_data/M13'] = DEFAULT_FILE_DATA
            file_content['observation_data/M14'] = DEFAULT_FILE_DATA
            file_content['observation_data/M15'] = DEFAULT_FILE_DATA
            file_content['observation_data/M16'] = DEFAULT_FILE_DATA
        elif file_type == 'vl1bi':
            file_content['observation_data/I01'] = DEFAULT_FILE_DATA
            file_content['observation_data/I02'] = DEFAULT_FILE_DATA
            file_content['observation_data/I03'] = DEFAULT_FILE_DATA
            file_content['observation_data/I04'] = DEFAULT_FILE_DATA
            file_content['observation_data/I05'] = DEFAULT_FILE_DATA
        elif file_type == 'vl1bd':
            file_content[
                'observation_data/DNB_observations'] = DEFAULT_FILE_DATA
            file_content[
                'observation_data/DNB_observations/attr/units'] = 'Watts/cm^2/steradian'

        for k in list(file_content.keys()):
            if not k.startswith('observation_data') and not k.startswith(
                    'geolocation_data'):
                continue
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            if k[-3:] in ['M12', 'M13', 'M14', 'M15', 'M16', 'I04', 'I05']:
                file_content[
                    k +
                    '_brightness_temperature_lut'] = DEFAULT_FILE_DATA.ravel()
                file_content[
                    k + '_brightness_temperature_lut/attr/units'] = 'Kelvin'
                file_content[k +
                             '_brightness_temperature_lut/attr/valid_min'] = 0
                file_content[
                    k + '_brightness_temperature_lut/attr/valid_max'] = 65534
                file_content[
                    k + '_brightness_temperature_lut/attr/_FillValue'] = 65535
                file_content[
                    k + '/attr/units'] = 'Watts/meter^2/steradian/micrometer'
            elif k[-3:] in [
                    'M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08',
                    'M09', 'M10', 'M11', 'I01', 'I02', 'I03'
            ]:
                file_content[
                    k +
                    '/attr/radiance_units'] = 'Watts/meter^2/steradian/micrometer'
                file_content[k + '/attr/radiance_scale_factor'] = 1.1
                file_content[k + '/attr/radiance_add_offset'] = 0.1
            elif k.endswith('longitude'):
                file_content[k + '/attr/units'] = 'degrees_east'
            elif k.endswith('latitude'):
                file_content[k + '/attr/units'] = 'degrees_north'
            file_content[k + '/attr/valid_min'] = 0
            file_content[k + '/attr/valid_max'] = 65534
            file_content[k + '/attr/_FillValue'] = 65535
            file_content[k + '/attr/scale_factor'] = 1.1
            file_content[k + '/attr/add_offset'] = 0.1

        convert_file_content_to_data_array(file_content)
        return file_content
コード例 #10
0
ファイル: test_nucaps.py プロジェクト: joleenf/satpy
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        file_content = {
            '/attr/time_coverage_start': "2020-10-20T12:00:00.5Z",
            '/attr/time_coverage_end': "2020-10-20T12:00:36Z",
            '/attr/start_orbit_number': 1,
            '/attr/end_orbit_number': 2,
            '/attr/platform_name': 'NPP',
            '/attr/instrument_name': 'CrIS, ATMS, VIIRS',
        }
        for k, units, standard_name in [
            ('Solar_Zenith', 'degrees', 'solar_zenith_angle'),
            ('Topography', 'meters', ''),
            ('Land_Fraction', '1', ''),
            ('Surface_Pressure', 'mb', ''),
            ('Skin_Temperature', 'Kelvin', 'surface_temperature'),
        ]:
            file_content[k] = DEFAULT_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
            file_content[k + '/attr/units'] = units
            file_content[k + '/attr/valid_range'] = (0., 120.)
            file_content[k + '/attr/_FillValue'] = -9999.
            if standard_name:
                file_content[k + '/attr/standard_name'] = standard_name
        for k, units, standard_name in [
            ('Temperature', 'Kelvin', 'air_temperature'),
            ('Effective_Pressure', 'mb', ''),
            ('H2O', '1', ''),
            ('H2O_MR', 'g/g', ''),
            ('O3', '1', ''),
            ('O3_MR', '1', ''),
            ('Liquid_H2O', '1', ''),
            ('Liquid_H2O_MR', 'g/g', 'cloud_liquid_water_mixing_ratio'),
            ('CO', '1', ''),
            ('CO_MR', '1', ''),
            ('CH4', '1', ''),
            ('CH4_MR', '1', ''),
            ('CO2', '1', ''),
            ('HNO3', '1', ''),
            ('HNO3_MR', '1', ''),
            ('N2O', '1', ''),
            ('N2O_MR', '1', ''),
            ('SO2', '1', ''),
            ('SO2_MR', '1', ''),
        ]:
            file_content[k] = DEFAULT_PRES_FILE_DATA
            file_content[k + '/shape'] = DEFAULT_PRES_FILE_SHAPE
            file_content[k + '/attr/units'] = units
            file_content[k + '/attr/valid_range'] = (0., 120.)
            file_content[k + '/attr/_FillValue'] = -9999.
            if standard_name:
                file_content[k + '/attr/standard_name'] = standard_name
        k = 'Pressure'
        file_content[k] = ALL_PRESSURE_LEVELS
        file_content[k + '/shape'] = DEFAULT_PRES_FILE_SHAPE
        file_content[k + '/attr/units'] = 'mb'
        file_content[k + '/attr/valid_range'] = (0., 2000.)
        file_content[k + '/attr/_FillValue'] = -9999.

        k = 'Quality_Flag'
        file_content[k] = DEFAULT_FILE_DATA.astype(np.int32)
        file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
        file_content[k + '/attr/valid_range'] = (0, 31)
        file_content[k + '/attr/_FillValue'] = -9999.

        k = 'Longitude'
        file_content[k] = DEFAULT_LON_DATA
        file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
        file_content[k + '/attr/units'] = 'degrees_east'
        file_content[k + '/attr/valid_range'] = (-180., 180.)
        file_content[k + '/attr/standard_name'] = 'longitude'
        file_content[k + '/attr/_FillValue'] = -9999.

        k = 'Latitude'
        file_content[k] = DEFAULT_LAT_DATA
        file_content[k + '/shape'] = DEFAULT_FILE_SHAPE
        file_content[k + '/attr/units'] = 'degrees_north'
        file_content[k + '/attr/valid_range'] = (-90., 90.)
        file_content[k + '/attr/standard_name'] = 'latitude'
        file_content[k + '/attr/_FillValue'] = -9999.

        attrs = ('_FillValue', 'flag_meanings', 'flag_values', 'units')
        cris_fors_dim_name = 'Number_of_CrIS_FORs'
        pressure_levels_dim_name = 'Number_of_P_Levels'
        if ('_v1' in filename):
            cris_fors_dim_name = 'number_of_FORs'
            pressure_levels_dim_name = 'number_of_p_levels'
        convert_file_content_to_data_array(file_content,
                                           attrs=attrs,
                                           dims=('z', cris_fors_dim_name,
                                                 pressure_levels_dim_name))
        return file_content
コード例 #11
0
ファイル: test_geocat.py プロジェクト: youssef-osrhir/satpy
    def get_test_content(self, filename, filename_info, filetype_info):
        """Mimic reader input file content."""
        file_content = {
            '/attr/Platform_Name':
            filename_info['platform_shortname'],
            '/attr/Element_Resolution':
            2.,
            '/attr/Line_Resolution':
            2.,
            '/attr/Subsatellite_Longitude':
            -70.2 if 'GOES' in filename_info['platform_shortname'] else 140.65,
            'pixel_longitude':
            DEFAULT_LON_DATA,
            'pixel_longitude/attr/scale_factor':
            1.,
            'pixel_longitude/attr/add_offset':
            0.,
            'pixel_longitude/shape':
            DEFAULT_FILE_SHAPE,
            'pixel_longitude/attr/_FillValue':
            np.nan,
            'pixel_latitude':
            DEFAULT_LAT_DATA,
            'pixel_latitude/attr/scale_factor':
            1.,
            'pixel_latitude/attr/add_offset':
            0.,
            'pixel_latitude/shape':
            DEFAULT_FILE_SHAPE,
            'pixel_latitude/attr/_FillValue':
            np.nan,
        }
        sensor = {
            'HIMAWARI-8': 'himawari8',
            'GOES-17': 'goesr',
            'GOES-16': 'goesr',
            'GOES-13': 'goes',
            'GOES-14': 'goes',
            'GOES-15': 'goes',
        }[filename_info['platform_shortname']]
        file_content['/attr/Sensor_Name'] = sensor

        if filename_info['platform_shortname'] == 'HIMAWARI-8':
            file_content['pixel_longitude'] = DEFAULT_LON_DATA + 130.

        file_content['variable1'] = DEFAULT_FILE_DATA.astype(np.float32)
        file_content['variable1/attr/_FillValue'] = -1
        file_content['variable1/attr/scale_factor'] = 1.
        file_content['variable1/attr/add_offset'] = 0.
        file_content['variable1/attr/units'] = '1'
        file_content['variable1/shape'] = DEFAULT_FILE_SHAPE

        # data with fill values
        file_content['variable2'] = np.ma.masked_array(
            DEFAULT_FILE_DATA.astype(np.float32),
            mask=np.zeros_like(DEFAULT_FILE_DATA))
        file_content['variable2'].mask[::5, ::5] = True
        file_content['variable2/attr/_FillValue'] = -1
        file_content['variable2/attr/scale_factor'] = 1.
        file_content['variable2/attr/add_offset'] = 0.
        file_content['variable2/attr/units'] = '1'
        file_content['variable2/shape'] = DEFAULT_FILE_SHAPE

        # category
        file_content['variable3'] = DEFAULT_FILE_DATA.astype(np.byte)
        file_content['variable3/attr/_FillValue'] = -128
        file_content[
            'variable3/attr/flag_meanings'] = "clear water supercooled mixed ice unknown"
        file_content['variable3/attr/flag_values'] = [0, 1, 2, 3, 4, 5]
        file_content['variable3/attr/units'] = '1'
        file_content['variable3/shape'] = DEFAULT_FILE_SHAPE

        attrs = ('_FillValue', 'flag_meanings', 'flag_values', 'units')
        convert_file_content_to_data_array(file_content,
                                           attrs=attrs,
                                           dims=('z', 'lines', 'elements'))
        return file_content