diff --git a/doc/source/examples/vii_l1b_nc.rst b/doc/source/examples/vii_l1b_nc.rst
index 17e0b58c7b..ea5dfc543c 100644
--- a/doc/source/examples/vii_l1b_nc.rst
+++ b/doc/source/examples/vii_l1b_nc.rst
@@ -1,7 +1,7 @@
-EPS-SG VII netCDF Example
+EPS-SG METimage netCDF Example
===============================
-Satpy includes a reader for the EPS-SG Visible and Infrared Imager (VII)
+Satpy includes a reader for the EPS-SG METimage (VII)
Level 1b data. The following Python code snippet shows an example on how to use
Satpy to read a channel and resample and save the image over the European area.
@@ -20,7 +20,7 @@ Satpy to read a channel and resample and save the image over the European area.
filenames = glob.glob('/path/to/VII/data/W_xx-eumetsat-darmstadt,SAT,SGA1-VII-1B-RAD_C_EUMT_20191007055100*')
# create a VII scene from the selected granule(s)
- scn = Scene(filenames=filenames, reader='vii_l1b_nc')
+ scn = Scene(filenames=filenames, reader='metimage_l1b_nc')
# print available dataset names for this scene
print(scn.available_dataset_names())
diff --git a/satpy/etc/composites/vii.yaml b/satpy/etc/composites/metimage.yaml
similarity index 99%
rename from satpy/etc/composites/vii.yaml
rename to satpy/etc/composites/metimage.yaml
index 1543ca852f..0032f47e34 100644
--- a/satpy/etc/composites/vii.yaml
+++ b/satpy/etc/composites/metimage.yaml
@@ -1,4 +1,4 @@
-sensor_name: visir/vii
+sensor_name: visir/metimage
modifiers:
nir_reflectance:
modifier: !!python/name:satpy.modifiers.NIRReflectance
diff --git a/satpy/etc/readers/vii_l1b_nc.yaml b/satpy/etc/readers/metimage_l1b_nc.yaml
similarity index 95%
rename from satpy/etc/readers/vii_l1b_nc.yaml
rename to satpy/etc/readers/metimage_l1b_nc.yaml
index 67a98ef46b..89c919a294 100644
--- a/satpy/etc/readers/vii_l1b_nc.yaml
+++ b/satpy/etc/readers/metimage_l1b_nc.yaml
@@ -1,25 +1,23 @@
reader:
- name: vii_l1b_nc
- short_name: VII L1B RAD NetCDF4
- long_name: EPS-SG Visual Infrafred Imager (VII) Level 1B Radiance data in netCDF4 format
+ name: metimage_l1b_nc
+ short_name: METimage (VII) L1B RAD NetCDF4
+ long_name: EPS-SG METimage (VII) Level 1B Radiance data in netCDF4 format
description: >
- Reader for EUMETSAT EPS-SG Visual Infrared Imager Level 1B Radiance files in NetCDF4 format per FS V4A.
+ Reader for EUMETSAT EPS-SG METimage (former name VII) Level 1B Radiance files in NetCDF4 format.
status: Beta
supports_fsspec: false
- sensors: [vii]
+ sensors: [metimage]
reader: !!python/name:satpy.readers.core.yaml_reader.FileYAMLReader
file_types:
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 1B Radiance files in NetCDF4 format
nc_vii_l1b_rad:
- file_reader: !!python/name:satpy.readers.vii_l1b_nc.ViiL1bNCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l1b_nc.METimageL1BNCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-1B-RAD_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}_T__.nc',
'W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-1B-RAD_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
datasets:
-
# --- Coordinates ---
lon_tie_points:
name: lon_tie_points
@@ -109,7 +107,12 @@ datasets:
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_763
coordinates: [lat_pixels, lon_pixels]
- calibration: [reflectance, radiance]
+ calibration:
+ reflectance:
+ standard_name: toa_bidirectional_reflectance
+ units: "%"
+ radiance:
+ standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 4
wavelength: [0.75695, 0.7627, 0.76845]
diff --git a/satpy/etc/readers/vii_l2_nc.yaml b/satpy/etc/readers/metimage_l2_nc.yaml
similarity index 91%
rename from satpy/etc/readers/vii_l2_nc.yaml
rename to satpy/etc/readers/metimage_l2_nc.yaml
index 037da505b9..703266bb02 100644
--- a/satpy/etc/readers/vii_l2_nc.yaml
+++ b/satpy/etc/readers/metimage_l2_nc.yaml
@@ -1,56 +1,56 @@
reader:
- name: vii_l2_nc
- short_name: VII L2 NetCDF4
- long_name: EPS-SG Visual Infrared Imager (VII) Level 2 data in netCDF4 format
+ name: metimage_l2_nc
+ short_name: METimage (VII) L2 NetCDF4
+ long_name: EPS-SG METimage (VII) Level 2 data in netCDF4 format
description: >
- Reader for EUMETSAT EPSG-SG Visual Infrared Imager Level 2 files in NetCDF4 format.
+ Reader for EUMETSAT EPS-SG METimage (former name VII) Level 2 files in NetCDF4 format.
status: Beta
supports_fsspec: false
- sensors: [vii]
+ sensors: [metimage]
reader: !!python/name:satpy.readers.core.yaml_reader.FileYAMLReader
file_types:
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 2 Cloud Mask files in NetCDF4 format
+ # Cloud Mask files in NetCDF4 format
nc_vii_l2_cld:
- file_reader: !!python/name:satpy.readers.vii_l2_nc.ViiL2NCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l2_nc.METimageL2NCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-02-CLD_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
orthorect: False
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 2 Cloud Top Pressure (using the Oxygen-A Band) files in NetCDF4 format
+ # Cloud Top Pressure (using the Oxygen-A Band) files in NetCDF4 format
nc_vii_l2_ctp:
- file_reader: !!python/name:satpy.readers.vii_l2_nc.ViiL2NCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l2_nc.METimageL2NCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-02-CTP_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 2 Cloud Mask and First Guess Cloud Properties files in NetCDF4 format
+ # Cloud Mask and First Guess Cloud Properties files in NetCDF4 format
nc_vii_l2_icm:
- file_reader: !!python/name:satpy.readers.vii_l2_nc.ViiL2NCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l2_nc.METimageL2NCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-02-ICM_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 2 Optimal Cloud Analysis files in NetCDF4 format
+ # Optimal Cloud Analysis files in NetCDF4 format
nc_vii_l2_oca:
- file_reader: !!python/name:satpy.readers.vii_l2_nc.ViiL2NCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l2_nc.METimageL2NCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-02-OCA_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 2 Total Precipitable Water (from VII visible/near-infrared) files in NetCDF4 format
+ # Total Precipitable Water (from visible/near-infrared) files in NetCDF4 format
nc_vii_l2_wvv:
- file_reader: !!python/name:satpy.readers.vii_l2_nc.ViiL2NCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l2_nc.METimageL2NCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-02-WVV_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
interpolate: False
orthorect: False
- # EUMETSAT EPSG-SG Visual Infrared Imager Level 2 Total Precipitable Water (from VII thermal infra-red) files in NetCDF4 format
+ # Total Precipitable Water (from thermal infra-red) files in NetCDF4 format
nc_vii_l2_wvi:
- file_reader: !!python/name:satpy.readers.vii_l2_nc.ViiL2NCFileHandler
+ file_reader: !!python/name:satpy.readers.metimage_l2_nc.METimageL2NCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-02-WVI_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude
@@ -58,7 +58,6 @@
orthorect: False
datasets:
-
# --- Coordinates ---
# TODO Coordinates on tie points are kept for test purposes
lon_tie_points:
diff --git a/satpy/readers/core/config.py b/satpy/readers/core/config.py
index 34abc56d0a..28dc25372b 100644
--- a/satpy/readers/core/config.py
+++ b/satpy/readers/core/config.py
@@ -30,7 +30,12 @@
LOG = logging.getLogger(__name__)
# Old Name -> New Name
-PENDING_OLD_READER_NAMES = {"fci_l1c_fdhsi": "fci_l1c_nc", "viirs_l2_cloud_mask_nc": "viirs_edr"}
+PENDING_OLD_READER_NAMES = {
+ "fci_l1c_fdhsi": "fci_l1c_nc",
+ "viirs_l2_cloud_mask_nc": "viirs_edr",
+ "vii_l1b_nc": "metimage_l1b_nc",
+ "vii_l2_nc": "metimage_l2_nc",
+}
OLD_READER_NAMES: dict[str, str] = {
"slstr_l2": "ghrsst_l2",
}
diff --git a/satpy/readers/core/vii.py b/satpy/readers/core/metimage.py
similarity index 86%
rename from satpy/readers/core/vii.py
rename to satpy/readers/core/metimage.py
index 154519bb4d..56b3110479 100644
--- a/satpy/readers/core/vii.py
+++ b/satpy/readers/core/metimage.py
@@ -16,8 +16,13 @@
# You should have received a copy of the GNU General Public License
# along with satpy. If not, see .
-"""Utilities for the management of VII products."""
+"""Utilities for the management of METimage (VII) products."""
+PLATFORM_NAME_TRANSLATE = {
+ "SGA1": "Metop-SG-A1",
+ "SGA2": "Metop-SG-A2",
+ "SGA3": "Metop-SG-A3"
+}
# PLANCK COEFFICIENTS FOR CALIBRATION AS DEFINED BY EUMETSAT
C1 = 1.191062e+8 # [W/m2·sr-1·µm4]
diff --git a/satpy/readers/core/vii_nc.py b/satpy/readers/core/metimage_nc.py
similarity index 91%
rename from satpy/readers/core/vii_nc.py
rename to satpy/readers/core/metimage_nc.py
index 92aaa1c014..dbd4f8eb43 100644
--- a/satpy/readers/core/vii_nc.py
+++ b/satpy/readers/core/metimage_nc.py
@@ -16,7 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with satpy. If not, see .
-"""EUMETSAT EPS-SG Visible/Infrared Imager (VII) readers base class."""
+"""EUMETSAT EPS-SG METimage (VII) readers base class."""
import datetime as dt
@@ -25,14 +25,14 @@
import xarray as xr
from geotiepoints.viiinterpolator import tie_points_geo_interpolation, tie_points_interpolation
+from satpy.readers.core.metimage import PLATFORM_NAME_TRANSLATE, SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR
from satpy.readers.core.netcdf import NetCDF4FileHandler
-from satpy.readers.core.vii import SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR
logger = logging.getLogger(__name__)
-class ViiNCBaseFileHandler(NetCDF4FileHandler):
- """Base reader class for VII products in netCDF format.
+class METimageNCBaseFileHandler(NetCDF4FileHandler):
+ """Base reader class for METimage (VII) products in netCDF format.
Args:
filename (str): File to read
@@ -113,6 +113,10 @@ def get_dataset(self, dataset_id, dataset_info):
if orthorect_data_name is not None:
variable = self._perform_orthorectification(variable, orthorect_data_name)
+ # wrapping longitude between -180 and 180 degrees
+ if variable.name == "longitude":
+ variable = self.wrap_longitude(variable)
+
# Manage the attributes of the dataset
variable.attrs.setdefault("units", None)
@@ -121,6 +125,12 @@ def get_dataset(self, dataset_id, dataset_info):
variable = self._standardize_dims(variable)
return variable
+ @staticmethod
+ def wrap_longitude(longitude_array):
+ """Wrap longitude between -180 and 180 degrees."""
+ longitude_array = ((longitude_array + 180) % 360) - 180
+ return longitude_array
+
@staticmethod
def _perform_interpolation(variable) -> xr.DataArray:
"""Perform the interpolation from tie points to pixel points.
@@ -199,6 +209,7 @@ def _get_global_attributes(self):
"filename_start_time": self.filename_info["sensing_start_time"],
"filename_end_time": self.filename_info["sensing_end_time"],
"platform_name": self.spacecraft_name,
+ "rows_per_scan": 24
}
# Add a "quality_group" item to the dictionary with all the variables and attributes
@@ -240,15 +251,15 @@ def end_time(self):
@property
def spacecraft_name(self):
"""Return spacecraft name."""
- return self["/attr/spacecraft"]
+ return PLATFORM_NAME_TRANSLATE.get(self["/attr/spacecraft"], self["/attr/spacecraft"])
@property
def sensor(self):
"""Return sensor."""
- return self["/attr/instrument"]
+ return "metimage"
@property
def ssp_lon(self):
"""Return subsatellite point longitude."""
- # This parameter is not applicable to VII
+ # This parameter is not applicable to METimage
return None
diff --git a/satpy/readers/vii_l1b_nc.py b/satpy/readers/metimage_l1b_nc.py
similarity index 86%
rename from satpy/readers/vii_l1b_nc.py
rename to satpy/readers/metimage_l1b_nc.py
index 8587378747..527ea6edaf 100644
--- a/satpy/readers/vii_l1b_nc.py
+++ b/satpy/readers/metimage_l1b_nc.py
@@ -15,14 +15,15 @@
#
# You should have received a copy of the GNU General Public License
# along with satpy. If not, see .
-"""EUMETSAT EPS-SG Visible/Infrared Imager (VII) Level 1B products reader.
+"""EUMETSAT EPS-SG METimage (VII) Level 1B products reader.
-The ``vii_l1b_nc`` reader reads and calibrates EPS-SG VII L1b image data in netCDF format. The format is explained
-in the `EPS-SG VII Level 1B Product Format Specification V4A`_.
+The ``metimage_l1b_nc`` reader reads and calibrates EPS-SG METimage L1b image data in netCDF format. The format is
+explained in the `EPS-SG VII Level 1B Product Format Specification V4A`_.
+Note that METimage is the official name of the instrument, while VII is the old name used during the mission (design).
+The name VII is currently still used in the filenames as well as in official system documentation
+(e.g. the format specs).
-This version is applicable for the vii test data V2 to be released in Jan 2022.
-
-.. _EPS-SG VII Level 1B Product Format Specification V4A: https://www.eumetsat.int/media/44393
+.. _EPS-SG VII Level 1B Product Format Specification V4A: https://user.eumetsat.int/s3/eup-strapi-media/EPS_SG_VII_Level_1_B_Product_Format_Specification_654c0b397a.pdf
"""
@@ -31,14 +32,14 @@
import numpy as np
import xarray as xr
-from satpy.readers.core.vii import C1, C2, MEAN_EARTH_RADIUS
-from satpy.readers.core.vii_nc import ViiNCBaseFileHandler
+from satpy.readers.core.metimage import C1, C2, MEAN_EARTH_RADIUS
+from satpy.readers.core.metimage_nc import METimageNCBaseFileHandler
logger = logging.getLogger(__name__)
-class ViiL1bNCFileHandler(ViiNCBaseFileHandler):
- """Reader class for VII L1B products in netCDF format."""
+class METimageL1BNCFileHandler(METimageNCBaseFileHandler):
+ """Reader class for METimage (VII) L1B products in netCDF format."""
def __init__(self, filename, filename_info, filetype_info, **kwargs):
"""Read the calibration data and prepare the class for dataset reading."""
diff --git a/satpy/readers/vii_l2_nc.py b/satpy/readers/metimage_l2_nc.py
similarity index 92%
rename from satpy/readers/vii_l2_nc.py
rename to satpy/readers/metimage_l2_nc.py
index fbc5a8e057..3e0579e1a2 100644
--- a/satpy/readers/vii_l2_nc.py
+++ b/satpy/readers/metimage_l2_nc.py
@@ -22,12 +22,12 @@
import xarray as xr
-from satpy.readers.core.vii_nc import ViiNCBaseFileHandler
+from satpy.readers.core.metimage_nc import METimageNCBaseFileHandler
logger = logging.getLogger(__name__)
-class ViiL2NCFileHandler(ViiNCBaseFileHandler):
+class METimageL2NCFileHandler(METimageNCBaseFileHandler):
"""Reader class for VII L2 products in netCDF format."""
def _perform_orthorectification(self, variable: xr.DataArray, orthorect_data_name: str) -> xr.DataArray:
diff --git a/satpy/readers/vii_base_nc.py b/satpy/readers/vii_base_nc.py
deleted file mode 100644
index 9970835308..0000000000
--- a/satpy/readers/vii_base_nc.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2014-2025 Satpy developers
-#
-# This file is part of satpy.
-#
-# satpy is free software: you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-#
-# satpy is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# satpy. If not, see .
-"""EUMETSAT EPS-SG Visible/Infrared Imager (VII) readers base class."""
-
-from __future__ import annotations
-
-from typing import Any
-
-from satpy.utils import _import_and_warn_new_location
-
-
-def __getattr__(name: str) -> Any:
- new_module = "satpy.readers.core.vii_nc"
-
- return _import_and_warn_new_location(new_module, name)
diff --git a/satpy/readers/vii_utils.py b/satpy/readers/vii_utils.py
deleted file mode 100644
index c037167ca8..0000000000
--- a/satpy/readers/vii_utils.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2014-2025 Satpy developers
-#
-# This file is part of satpy.
-#
-# satpy is free software: you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-#
-# satpy is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# satpy. If not, see .
-"""Utilities for the management of VII products."""
-
-from __future__ import annotations
-
-from typing import Any
-
-from satpy.utils import _import_and_warn_new_location
-
-
-def __getattr__(name: str) -> Any:
- new_module = "satpy.readers.core.vii"
-
- return _import_and_warn_new_location(new_module, name)
diff --git a/satpy/tests/reader_tests/test_vii_base_nc.py b/satpy/tests/reader_tests/test_metimage_base_nc.py
similarity index 91%
rename from satpy/tests/reader_tests/test_vii_base_nc.py
rename to satpy/tests/reader_tests/test_metimage_base_nc.py
index 9948a135c8..dc5016fee0 100644
--- a/satpy/tests/reader_tests/test_vii_base_nc.py
+++ b/satpy/tests/reader_tests/test_metimage_base_nc.py
@@ -16,7 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with satpy. If not, see .
-"""The vii_base_nc reader tests package."""
+"""The metimage_base_nc reader tests package."""
import datetime
import os
@@ -29,15 +29,15 @@
import xarray as xr
from netCDF4 import Dataset
-from satpy.readers.core.vii_nc import SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR, ViiNCBaseFileHandler
+from satpy.readers.core.metimage_nc import SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR, METimageNCBaseFileHandler
TEST_FILE = "test_file_vii_base_nc.nc"
-class TestViiNCBaseFileHandler(unittest.TestCase):
- """Test the ViiNCBaseFileHandler reader."""
+class TestMETimageNCBaseFileHandler(unittest.TestCase):
+ """Test the METimageNCBaseFileHandler reader."""
- @mock.patch("satpy.readers.core.vii_nc.ViiNCBaseFileHandler._perform_geo_interpolation")
+ @mock.patch("satpy.readers.core.metimage_nc.METimageNCBaseFileHandler._perform_geo_interpolation")
def setUp(self, pgi_):
"""Set up the test."""
# Easiest way to test the reader is to create a test netCDF file on the fly
@@ -48,7 +48,7 @@ def setUp(self, pgi_):
# Add global attributes
nc.sensing_start_time_utc = "20170920173040.888"
nc.sensing_end_time_utc = "20170920174117.555"
- nc.spacecraft = "test_spacecraft"
+ nc.spacecraft = "SGA1"
nc.instrument = "test_instrument"
# Create data group
@@ -72,7 +72,7 @@ def setUp(self, pgi_):
lon = g1_1.createVariable("longitude",
np.float32,
dimensions=("num_tie_points_act", "num_tie_points_alt"))
- lon[:] = 100.
+ lon[:] = 200.
lat = g1_1.createVariable("latitude",
np.float32,
dimensions=("num_tie_points_act", "num_tie_points_alt"))
@@ -99,8 +99,8 @@ def setUp(self, pgi_):
var[:] = [7.0, 8.0]
# Create longitude and latitude "interpolated" arrays
- interp_longitude = xr.DataArray(np.ones((10, 100)))
- interp_latitude = xr.DataArray(np.ones((10, 100)) * 2.)
+ interp_longitude = xr.DataArray(np.ones((10, 100)) * 250, name="longitude")
+ interp_latitude = xr.DataArray(np.ones((10, 100)) * 2., name="latitude")
pgi_.return_value = (interp_longitude, interp_latitude)
# Filename info valid for all readers
@@ -115,7 +115,7 @@ def setUp(self, pgi_):
self.filename_info = filename_info
# Create a reader
- self.reader = ViiNCBaseFileHandler(
+ self.reader = METimageNCBaseFileHandler(
filename=self.test_file_name,
filename_info=filename_info,
filetype_info={
@@ -126,7 +126,7 @@ def setUp(self, pgi_):
# Create a second reader where orthorectification and interpolation are inhibited
# by means of the filetype_info flags
- self.reader_2 = ViiNCBaseFileHandler(
+ self.reader_2 = METimageNCBaseFileHandler(
filename=self.test_file_name,
filename_info=filename_info,
filetype_info={
@@ -140,7 +140,7 @@ def setUp(self, pgi_):
# Create a third reader without defining cached latitude and longitude
# by means of the filetype_info flags
- self.reader_3 = ViiNCBaseFileHandler(
+ self.reader_3 = METimageNCBaseFileHandler(
filename=self.test_file_name,
filename_info=filename_info,
filetype_info={},
@@ -166,8 +166,9 @@ def test_file_reading(self):
hour=17, minute=41, second=17, microsecond=555000)
assert self.reader.end_time == expected_end_time
- assert self.reader.spacecraft_name == "test_spacecraft"
- assert self.reader.sensor == "test_instrument"
+ assert self.reader.spacecraft_name == "Metop-SG-A1"
+ # the netCDF instrument attribute is VII, so we hardcode metimage instead
+ assert self.reader.sensor == "metimage"
assert self.reader.ssp_lon is None
# Checks that the global attributes are correctly read
@@ -175,14 +176,14 @@ def test_file_reading(self):
"filename": self.test_file_name,
"start_time": expected_start_time,
"end_time": expected_end_time,
- "spacecraft_name": "test_spacecraft",
+ "spacecraft_name": "Metop-SG-A1",
"ssp_lon": None,
- "sensor": "test_instrument",
+ "sensor": "metimage",
"filename_start_time": datetime.datetime(year=2017, month=9, day=20,
hour=12, minute=30, second=30),
"filename_end_time": datetime.datetime(year=2017, month=9, day=20,
hour=18, minute=30, second=50),
- "platform_name": "test_spacecraft",
+ "platform_name": "Metop-SG-A1",
"quality_group": {
"duration_of_product": 1.,
"duration_of_data_present": 2.,
@@ -190,7 +191,8 @@ def test_file_reading(self):
"duration_of_data_degraded": 4.,
"gap_start_time_utc": (5., 6.),
"gap_end_time_utc": (7., 8.)
- }
+ },
+ "rows_per_scan": 24
}
global_attributes = self.reader._get_global_attributes()
@@ -238,7 +240,7 @@ def test_start_end_time_additional_formats(self):
nc.sensing_start_time_utc = start_str
nc.sensing_end_time_utc = end_str
- reader = ViiNCBaseFileHandler(
+ reader = METimageNCBaseFileHandler(
filename=self.test_file_name,
filename_info=self.filename_info,
filetype_info={},
@@ -253,7 +255,7 @@ def test_bad_start_end_time(self):
nc.sensing_start_time_utc = "201709201730"
nc.sensing_end_time_utc = "201709201740"
- reader = ViiNCBaseFileHandler(
+ reader = METimageNCBaseFileHandler(
filename=self.test_file_name,
filename_info=self.filename_info,
filetype_info={},
@@ -264,8 +266,8 @@ def test_bad_start_end_time(self):
with pytest.raises(ValueError, match="Unrecognized datetime format"):
reader.end_time
- @mock.patch("satpy.readers.core.vii_nc.tie_points_interpolation")
- @mock.patch("satpy.readers.core.vii_nc.tie_points_geo_interpolation")
+ @mock.patch("satpy.readers.core.metimage_nc.tie_points_interpolation")
+ @mock.patch("satpy.readers.core.metimage_nc.tie_points_geo_interpolation")
def test_functions(self, tpgi_, tpi_):
"""Test the functions."""
with pytest.raises(NotImplementedError):
@@ -358,9 +360,9 @@ def test_standardize_dims(self):
assert out_variable.dims == ("y", "x")
assert out_variable.attrs["key_1"] == "value_lat_1"
- @mock.patch("satpy.readers.core.vii_nc.ViiNCBaseFileHandler._perform_calibration")
- @mock.patch("satpy.readers.core.vii_nc.ViiNCBaseFileHandler._perform_interpolation")
- @mock.patch("satpy.readers.core.vii_nc.ViiNCBaseFileHandler._perform_orthorectification")
+ @mock.patch("satpy.readers.core.metimage_nc.METimageNCBaseFileHandler._perform_calibration")
+ @mock.patch("satpy.readers.core.metimage_nc.METimageNCBaseFileHandler._perform_interpolation")
+ @mock.patch("satpy.readers.core.metimage_nc.METimageNCBaseFileHandler._perform_orthorectification")
def test_dataset(self, po_, pi_, pc_):
"""Test the execution of the get_dataset function."""
# Checks the correct execution of the get_dataset function with a valid file_key
@@ -408,7 +410,7 @@ def test_dataset(self, po_, pi_, pc_):
"interpolate": True})
pc_.assert_not_called()
pi_.assert_not_called()
- assert longitude[0, 0] == 1.0
+ assert longitude[0, 0] == -110.0 # -180 + (250-180)
# Checks the correct execution of the get_dataset function with a 'cached_latitude' file_key
latitude = self.reader.get_dataset(None, {"file_key": "cached_latitude",
@@ -442,7 +444,7 @@ def test_dataset(self, po_, pi_, pc_):
# Checks the correct execution of the get_dataset function with a 'cached_longitude' file_key
longitude = self.reader_2.get_dataset(None, {"file_key": "cached_longitude",
"calibration": None})
- assert longitude[0, 0] == 100.0
+ assert longitude[0, 0] == -160.0 # -180 + (200-180)
# Checks the correct execution of the get_dataset function with a 'cached_longitude' file_key
# in a reader without defined longitude
diff --git a/satpy/tests/reader_tests/test_vii_l1b_nc.py b/satpy/tests/reader_tests/test_metimage_l1b_nc.py
similarity index 94%
rename from satpy/tests/reader_tests/test_vii_l1b_nc.py
rename to satpy/tests/reader_tests/test_metimage_l1b_nc.py
index fbef4298d5..c82333b175 100644
--- a/satpy/tests/reader_tests/test_vii_l1b_nc.py
+++ b/satpy/tests/reader_tests/test_metimage_l1b_nc.py
@@ -15,9 +15,9 @@
#
# You should have received a copy of the GNU General Public License
# along with satpy. If not, see .
-"""The vii_l1b_nc reader tests package.
+"""The metimage_l1b_nc reader tests package.
-This version tests the readers for VII test data V2 as per PFS V4A.
+This version tests the readers for METimage.
"""
@@ -33,14 +33,14 @@
import xarray as xr
from netCDF4 import Dataset
-from satpy.readers.core.vii import MEAN_EARTH_RADIUS
-from satpy.readers.vii_l1b_nc import ViiL1bNCFileHandler
+from satpy.readers.core.metimage import MEAN_EARTH_RADIUS
+from satpy.readers.metimage_l1b_nc import METimageL1BNCFileHandler
TEST_FILE = "test_file_vii_l1b_nc.nc"
-class TestViiL1bNCFileHandler(unittest.TestCase):
- """Test the ViiL1bNCFileHandler reader."""
+class TestMETimageL1bNCFileHandler(unittest.TestCase):
+ """Test the METimageL1BNCFileHandler reader."""
def setUp(self):
"""Set up the test."""
@@ -85,7 +85,7 @@ def setUp(self):
delta_lat = g1_2.createVariable("delta_lat", np.float32, dimensions=("num_lines", "num_pixels"))
delta_lat[:] = 1.0
- self.reader = ViiL1bNCFileHandler(
+ self.reader = METimageL1BNCFileHandler(
filename=self.test_file_name,
filename_info={
"creation_time": datetime.datetime(year=2017, month=9, day=22,
diff --git a/satpy/tests/reader_tests/test_vii_l2_nc.py b/satpy/tests/reader_tests/test_metimage_l2_nc.py
similarity index 93%
rename from satpy/tests/reader_tests/test_vii_l2_nc.py
rename to satpy/tests/reader_tests/test_metimage_l2_nc.py
index 8348470d0f..81ef5340fc 100644
--- a/satpy/tests/reader_tests/test_vii_l2_nc.py
+++ b/satpy/tests/reader_tests/test_metimage_l2_nc.py
@@ -28,13 +28,13 @@
import xarray as xr
from netCDF4 import Dataset
-from satpy.readers.vii_l2_nc import ViiL2NCFileHandler
+from satpy.readers.metimage_l2_nc import METimageL2NCFileHandler
TEST_FILE = "test_file_vii_l2_nc.nc"
-class TestViiL2NCFileHandler(unittest.TestCase):
- """Test the ViiL2NCFileHandler reader."""
+class TestMETimageL2NCFileHandler(unittest.TestCase):
+ """Test the METimageL2NCFileHandler reader."""
def setUp(self):
"""Set up the test."""
@@ -57,7 +57,7 @@ def setUp(self):
delta_lat = g1_2.createVariable("delta_lat", np.float32, dimensions=("num_lines", "num_pixels"))
delta_lat[:] = 0.1
- self.reader = ViiL2NCFileHandler(
+ self.reader = METimageL2NCFileHandler(
filename=self.test_file_name,
filename_info={
"creation_time": datetime.datetime(year=2017, month=9, day=22,
diff --git a/satpy/tests/reader_tests/test_vii_utils.py b/satpy/tests/reader_tests/test_metimage_utils.py
similarity index 70%
rename from satpy/tests/reader_tests/test_vii_utils.py
rename to satpy/tests/reader_tests/test_metimage_utils.py
index 7d1a13c216..cbd626db09 100644
--- a/satpy/tests/reader_tests/test_vii_utils.py
+++ b/satpy/tests/reader_tests/test_metimage_utils.py
@@ -20,7 +20,7 @@
import unittest
-import satpy.readers.core.vii
+import satpy.readers.core.metimage
# Constants to be tested
C1 = 1.191062e+8
@@ -30,14 +30,14 @@
MEAN_EARTH_RADIUS = 6371008.7714
-class TestViiUtils(unittest.TestCase):
+class TestMETimageUtils(unittest.TestCase):
"""Test the vii_utils module."""
def test_constants(self):
"""Test the constant values."""
# Test the value of the constants
- assert satpy.readers.core.vii.C1 == C1
- assert satpy.readers.core.vii.C2 == C2
- assert satpy.readers.core.vii.TIE_POINTS_FACTOR == TIE_POINTS_FACTOR
- assert satpy.readers.core.vii.SCAN_ALT_TIE_POINTS == SCAN_ALT_TIE_POINTS
- assert satpy.readers.core.vii.MEAN_EARTH_RADIUS == MEAN_EARTH_RADIUS
+ assert satpy.readers.core.metimage.C1 == C1
+ assert satpy.readers.core.metimage.C2 == C2
+ assert satpy.readers.core.metimage.TIE_POINTS_FACTOR == TIE_POINTS_FACTOR
+ assert satpy.readers.core.metimage.SCAN_ALT_TIE_POINTS == SCAN_ALT_TIE_POINTS
+ assert satpy.readers.core.metimage.MEAN_EARTH_RADIUS == MEAN_EARTH_RADIUS
diff --git a/satpy/tests/reader_tests/test_vii_wv_nc.py b/satpy/tests/reader_tests/test_metimage_wv_nc.py
similarity index 94%
rename from satpy/tests/reader_tests/test_vii_wv_nc.py
rename to satpy/tests/reader_tests/test_metimage_wv_nc.py
index 63c5604187..d0132f93ad 100644
--- a/satpy/tests/reader_tests/test_vii_wv_nc.py
+++ b/satpy/tests/reader_tests/test_metimage_wv_nc.py
@@ -28,13 +28,13 @@
import xarray as xr
from netCDF4 import Dataset
-from satpy.readers.vii_l2_nc import ViiL2NCFileHandler
+from satpy.readers.metimage_l2_nc import METimageL2NCFileHandler
TEST_FILE = "test_file_vii_wv_nc.nc"
-class TestViiL2NCFileHandler(unittest.TestCase):
- """Test the ViiL2NCFileHandler reader."""
+class TestMETimageL2NCFileHandler(unittest.TestCase):
+ """Test the METimageL2NCFileHandler reader."""
def setUp(self):
"""Set up the test."""
@@ -57,7 +57,7 @@ def setUp(self):
delta_lat = g1_2.createVariable("delta_lat", np.float32, dimensions=("num_points_alt", "num_points_act"))
delta_lat[:] = 0.1
- self.reader = ViiL2NCFileHandler(
+ self.reader = METimageL2NCFileHandler(
filename=self.test_file_name,
filename_info={
"creation_time": datetime.datetime(year=2017, month=9, day=22,
diff --git a/satpy/tests/reader_tests/test_moved_reader_bases.py b/satpy/tests/reader_tests/test_moved_reader_bases.py
index 88d792748a..345cbeab10 100644
--- a/satpy/tests/reader_tests/test_moved_reader_bases.py
+++ b/satpy/tests/reader_tests/test_moved_reader_bases.py
@@ -175,18 +175,6 @@ def test_seviri_base_warns(name):
getattr(seviri_base, name)
-@pytest.mark.parametrize("name",
- ["ViiNCBaseFileHandler",
- ]
- )
-def test_vii_base_nc_warns(name):
- """Test that there's a warning when importing from VII NetCDF4 base from the old location."""
- from satpy.readers import vii_base_nc
-
- with pytest.warns(UserWarning, match=".*has been moved.*"):
- getattr(vii_base_nc, name)
-
-
@pytest.mark.parametrize("name",
["JPSS_SDR_FileHandler",
"DATASET_KEYS",
@@ -202,22 +190,6 @@ def test_viirs_atms_sdr_warns(name):
getattr(viirs_atms_sdr_base, name)
-@pytest.mark.parametrize("name",
- ["C1",
- "C2",
- "TIE_POINTS_FACTOR",
- "SCAN_ALT_TIE_POINTS",
- "MEAN_EARTH_RADIUS",
- ]
- )
-def test_vii_utils_warns(name):
- """Test that there's a warning when importing from VII utils from the old location."""
- from satpy.readers import vii_utils
-
- with pytest.warns(UserWarning, match=".*has been moved.*"):
- getattr(vii_utils, name)
-
-
@pytest.mark.parametrize("name",
["listify_string",
"load_yaml_configs",