#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2021 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 <http://www.gnu.org/licenses/>.
"""Demo FCI data download."""
import pathlib
import tarfile
import tempfile
from satpy import config
from . import utils
_fci_uncompressed_nominal = (
"https://sftp.eumetsat.int/public/folder/UsCVknVOOkSyCdgpMimJNQ/"
"User-Materials/Test-Data/MTG/MTG_FCI_L1C_Enhanced-NonN_TD-272_May2020/"
"FCI_1C_UNCOMPRESSED_NOMINAL.tar.gz")
[docs]
def download_fci_test_data(base_dir=None):
"""Download FCI test data.
Download the nominal FCI test data from July 2020.
"""
subdir = get_fci_test_data_dir(base_dir=base_dir)
with tempfile.TemporaryDirectory() as td:
nm = pathlib.Path(td) / "fci-test-data.tar.gz"
utils.download_url(_fci_uncompressed_nominal, nm)
return _unpack_tarfile_to(nm, subdir)
[docs]
def get_fci_test_data_dir(base_dir=None):
"""Get directory for FCI test data."""
base_dir = base_dir or config.get("demo_data_dir", ".")
return pathlib.Path(base_dir) / "fci" / "test_data"
[docs]
def _unpack_tarfile_to(filename, subdir):
"""Unpack content of tarfile in filename to subdir."""
with tarfile.open(filename, mode="r:gz") as tf:
contents = tf.getnames()
tf.extractall(path=subdir) # nosec
return contents