Source code for polar2grid.readers.amsr2_l2_gaasp
#!/usr/bin/env python3
# encoding: utf-8
# Copyright (C) 2020-2021 Space Science and Engineering Center (SSEC),
# University of Wisconsin-Madison.
#
# This program 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.
#
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
#
# This file is part of the polar2grid software package. Polar2grid takes
# satellite observation data, remaps it, and writes it to a file format for
# input into another program.
# Documentation: http://www.ssec.wisc.edu/software/polar2grid/
"""The AMSR-2 L2 GAASP reader is for reading NetCDF4 from the NOAA GAASP software.
+-----------------------------------+--------------------------------------------+
| Product Name | Description |
+===========================+====================================================+
| Rain_Rate | Surface Rain Rate |
+-----------------------------------+--------------------------------------------+
| CLW | Cloud Liquid Water |
+-----------------------------------+--------------------------------------------+
| SST | Sea Surface Temperature |
+-----------------------------------+--------------------------------------------+
| TPW | Total Precipitable Water |
+-----------------------------------+--------------------------------------------+
| WSPD | Wind Speed |
+-----------------------------------+--------------------------------------------+
| Snow_Cover | Snow Cover (Snow Surface Flag) |
+-----------------------------------+--------------------------------------------+
| SWE | Snow Water Equivalent |
+-----------------------------------+--------------------------------------------+
| Snow_Depth | Snow Depth |
+-----------------------------------+--------------------------------------------+
| Soil_Moisture | Soil Moisture |
+-----------------------------------+--------------------------------------------+
| NASA_Team_2_Ice_Concentration_NH | Ice Concentration (Northern Hemisphere) |
+-----------------------------------+--------------------------------------------+
"""
from __future__ import annotations
from argparse import ArgumentParser, _ArgumentGroup
from typing import Optional
from satpy import DataQuery
from ._base import ReaderProxyBase
OCEAN_PRECIP_PRODUCTS = [
"Rain_Rate",
"CLW",
"SST",
"TPW",
"WSPD",
]
SNOW_PRODUCTS = [
"Snow_Cover",
"SWE",
"Snow_Depth",
]
SOIL_PRODUCTS = [
"Soil_Moisture",
]
SEAICE_PRODUCTS = [
"NASA_Team_2_Ice_Concentration_NH",
# "Latency_NH",
]
DEFAULT_PRODUCTS = OCEAN_PRECIP_PRODUCTS + SNOW_PRODUCTS + SOIL_PRODUCTS + SEAICE_PRODUCTS
[docs]
class ReaderProxy(ReaderProxyBase):
"""Provide Polar2Grid-specific information about this reader's products."""
is_polar2grid_reader = True
[docs]
def get_default_products(self) -> list[str]:
"""Get products to load if users hasn't specified any others."""
return DEFAULT_PRODUCTS
[docs]
def get_all_products(self) -> list[str]:
"""Get all polar2grid products that could be loaded."""
return DEFAULT_PRODUCTS
@property
def _aliases(self) -> dict[str, DataQuery]:
return {}
[docs]
def add_reader_argument_groups(
parser: ArgumentParser, group: Optional[_ArgumentGroup] = None
) -> tuple[Optional[_ArgumentGroup], Optional[_ArgumentGroup]]:
"""Add reader-specific command line arguments to an existing argument parser.
If ``group`` is provided then arguments are added to this group. If not,
a new group is added to the parser and arguments added to this new group.
"""
if group is None:
group = parser.add_argument_group(title="AMSR2 L2 GAASP Reader")
return group, None