Reading ESA CCI SM images
-------------------------
To read the ESA CCI image data we recommend to use python tools such as
`xarray `_ or `netCDF4 `_.
However, there are also reader classes provided in this package. These are mainly
used by the image-to-timeseries conversion tool.
Reading of the ESA CCI SM raw netcdf files can be done in two ways.
Reading by file name
~~~~~~~~~~~~~~~~~~~~
.. code-block:: python
import os
from datetime import datetime
from esa_cci_sm.interface import CCI_SM_025Img
import numpy.testing as nptest
# read several parameters
parameter = ['sm', 'sm_uncertainty']
# the class is initialized with the exact filename.
image_path = os.path.join(os.path.dirname(__file__), 'tests', 'esa_cci_sm-test-data',
'esa_cci_sm_dailyImages', 'v04.2', 'combined', '2016')
image_file = 'ESACCI-SOILMOISTURE-L3S-SSMV-COMBINED-20160607000000-fv04.2.nc'
img = CCI_SM_025Img(os.path.join(image_path, image_file), parameter=parameter)
# reading returns an image object which contains a data dictionary
# with one array per parameter. The returned data is a global 0.25 degree
# image/array.
image = img.read()
Reading by date
~~~~~~~~~~~~~~~
All the ESA CCI SM data in a directory structure can be accessed by date.
The filename is automatically built from the given date.
.. code-block:: python
from esa_cci_sm.interface import CCI_SM_025Ds
parameter = 'sm'
img = CCI_SM_025Ds(data_path=os.path.join(os.path.dirname(__file__),
'tests', 'esa_cci_sm-test-data', 'esa_cci_sm_dailyImages',
'v04.2', 'combined'),
parameter=parameter)
image = img.read(datetime(2016, 6, 7, 0))
For reading all image between two dates the
:py:meth:`esa_cci_sm.interface.CCI_SM_025Ds.iter_images` iterator can be
used.