Source code for pyspex.ogse_dolp

#
# This file is part of pyspex
#
# https://github.com/rmvanhees/pyspex.git
#
# Copyright (c) 2019-2023 SRON - Netherlands Institute for Space Research
#    All Rights Reserved
#
# License:  BSD-3-Clause
"""Defines the spectral dependent DolP of the Moxtek polarizer."""
from __future__ import annotations

__all__ = ['gsfc_polarizer']

import numpy as np
import xarray as xr

# - global parameters ------------------------------
DOLP_ATTRS = {'instrument': 'Moxtek polarizer characterisation',
              'comment': 'neglect when attribute DolP=0'}

WAVE = [360, 380, 410, 440, 460, 488,
        508.5, 532, 580, 770, 870]
DOLP = [.9805, .9833, .9875, .9913, .9932, .9948,
        .9962, .9972, .9972, .9983, .9972]
RATIO = [101.6, 118.9, 159., 229.5, 292.6, 383.6,
         530.6, 713.3, 710.1, 1193., 723.]


# - local functions ----------------------------
[docs] def gsfc_polarizer() -> xr.Dataset: """Define table for spectral dependent DolP.""" xar_wv = xr.DataArray(np.array(WAVE, dtype='f4'), coords={'wavelength': WAVE}, attrs={'longname': 'wavelength grid', 'units': 'nm', 'comment': 'wavelength annotation'}) xar_dolp = xr.DataArray(np.array(DOLP, dtype='f4'), coords={'wavelength': WAVE}, attrs={'longname': 'DoLP', 'units': '1'}) xar_ratio = xr.DataArray(np.array(RATIO, dtype='f4'), coords={'wavelength': WAVE}, attrs={'longname': 'Extinction ratio', 'units': '1'}) return xr.Dataset({'wavelength': xar_wv, 'DoLP': xar_dolp, 'Extinction_Ratio': xar_ratio}, attrs=DOLP_ATTRS)
def __test(l1a_file: str) -> None: """Small function to test this module.""" # Create a netCDF4 file containing the spectralDoLP xds = gsfc_polarizer() xds.to_netcdf(l1a_file, mode='w', format='NETCDF4', group='/gse_data/Polarizer') # -------------------------------------------------- if __name__ == '__main__': print('---------- SHOW DATASET ----------') print(gsfc_polarizer()) print('---------- WRITE DATASET ----------') __test('test_netcdf.nc')