Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow on-the-fly decompression of xRIT files in xRIT readers #436

Merged
merged 14 commits into from
Nov 23, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions doc/source/readers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,20 @@ Adding a Reader to SatPy
========================

This is described in the developer guide, see :ref:`custom-reader`

Implemented readers
===================

xRIT-based readers
------------------

.. automodule:: satpy.readers.hrit_base

.. automodule:: satpy.readers.hrit_msg

.. automodule:: satpy.readers.hrit_jma

.. automodule:: satpy.readers.hrit_goes

.. automodule:: satpy.readers.hrit_electrol

94 changes: 72 additions & 22 deletions satpy/etc/readers/hrit_electrol.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,61 +8,111 @@ reader:
file_types:
HRIT_00_6_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_6_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_6_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_00_7_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_00_9_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_03_8_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-03_8_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-03_8_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_06_4_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-06_4_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-06_4_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_08_0_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-08_0_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-08_0_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_08_7_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-08_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-08_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_09_7_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-09_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-09_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_10_7_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-10_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-10_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_11_9_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-11_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-11_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_00_6_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_6_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_00_7_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_00_9_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-00_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_03_8_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-03_8_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_06_4_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-06_4_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_08_0_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-08_0_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_08_7_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-08_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_09_7_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-09_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_10_7_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-10_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_11_9_4_C:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-11_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_4, HRIT_EPI_4]

HRIT_PRO_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSPrologueFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-_________-PRO______-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-_________-PRO______-{start_time:%Y%m%d%H%M}-__']

HRIT_EPI_4:
file_reader: !!python/name:satpy.readers.hrit_electrol.HRITGOMSEpilogueFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-_________-EPI______-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}4_____-_________-EPI______-{start_time:%Y%m%d%H%M}-__']

datasets:
'00_6':
Expand All @@ -79,7 +129,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_00_6_4
file_type: [HRIT_00_6_4, HRIT_00_6_4_C]

'00_7':
name: '00_7'
Expand All @@ -95,7 +145,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_00_7_4
file_type: [HRIT_00_7_4, HRIT_00_7_4_C]

'00_9':
name: '00_9'
Expand All @@ -111,7 +161,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_00_9_4
file_type: [HRIT_00_9_4, HRIT_00_9_4_C]

'03_8':
name: '03_8'
Expand All @@ -127,7 +177,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_03_8_4
file_type: [HRIT_03_8_4, HRIT_03_8_4_C]

'06_4':
name: '06_4'
Expand All @@ -143,7 +193,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_06_4_4
file_type: [HRIT_06_4_4, HRIT_06_4_4_C]

'08_0':
name: '08_0'
Expand All @@ -159,7 +209,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_08_0_4
file_type: [HRIT_08_0_4, HRIT_08_0_4_C]

'08_7':
name: '08_7'
Expand All @@ -175,7 +225,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_08_7_4
file_type: [HRIT_08_7_4, HRIT_08_7_4_C]

'09_7':
name: '09_7'
Expand All @@ -191,7 +241,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_09_7_4
file_type: [HRIT_09_7_4, HRIT_09_7_4_C]

'10_7':
name: '10_7'
Expand All @@ -207,7 +257,7 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_10_7_4
file_type: [HRIT_10_7_4, HRIT_10_7_4_C]

'11_9':
name: '11_9'
Expand All @@ -223,4 +273,4 @@ datasets:
counts:
standard_name: counts
units: '1'
file_type: HRIT_11_9_4
file_type: [HRIT_11_9_4, HRIT_11_9_4_C]
44 changes: 32 additions & 12 deletions satpy/etc/readers/hrit_goes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,39 +12,59 @@ reader:
file_types:
HRIT_00_7:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-00_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-00_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_00]

HRIT_00_7_C:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-00_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_00]

HRIT_03_9:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-03_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-03_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_03]

HRIT_03_9_C:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-03_9_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_03]

HRIT_06_6:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-06_6_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-06_6_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_06]

HRIT_06_6_C:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-06_6_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_06]

HRIT_10_7:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-10_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-10_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-__']
requires: [HRIT_PRO_10]

HRIT_10_7_C:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-10_7_{sublon:4s}-{segment:_<9s}-{start_time:%Y%m%d%H%M}-C_']
requires: [HRIT_PRO_10]

HRIT_PRO_00:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESPrologueFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-00_7_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-00_7_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-__']

HRIT_PRO_03:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESPrologueFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-03_9_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-03_9_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-__']

HRIT_PRO_06:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESPrologueFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-06_6_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-06_6_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-__']

HRIT_PRO_10:
file_reader: !!python/name:satpy.readers.hrit_goes.HRITGOESPrologueFileHandler
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-10_7_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-{compressed:_<2s}']
file_patterns: ['{rate:1s}-000-{hrit_format:_<6s}-{platform_shortname:_<6s}______-10_7_{sublon:4s}-PRO______-{start_time:%Y%m%d%H%M}-__']

datasets:
'00_7':
Expand All @@ -60,7 +80,7 @@ datasets:
# units: W m-2 um-1 sr-1
counts:
standard_name: counts
file_type: HRIT_00_7
file_type: [HRIT_00_7, HRIT_00_7_C]

'03_9':
name: '03_9'
Expand All @@ -75,7 +95,7 @@ datasets:
# units: W m-2 um-1 sr-1
counts:
standard_name: counts
file_type: HRIT_03_9
file_type: [HRIT_03_9, HRIT_03_9_C]

'06_6':
name: '06_6'
Expand All @@ -90,7 +110,7 @@ datasets:
# units: W m-2 um-1 sr-1
counts:
standard_name: counts
file_type: HRIT_06_6
file_type: [HRIT_06_6, HRIT_06_6_C]

'10_7':
name: '10_7'
Expand All @@ -105,4 +125,4 @@ datasets:
# units: W m-2 um-1 sr-1
counts:
standard_name: counts
file_type: HRIT_10_7
file_type: [HRIT_10_7, HRIT_10_7_C]
Loading