Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aazuspan/wxee
A Python interface between Earth Engine and xarray for processing time series data
https://github.com/aazuspan/wxee
climate climatology earth-engine earth-observation gis gridded netcdf raster time-series weather wx xarray
Last synced: 7 days ago
JSON representation
A Python interface between Earth Engine and xarray for processing time series data
- Host: GitHub
- URL: https://github.com/aazuspan/wxee
- Owner: aazuspan
- License: mit
- Created: 2021-07-22T02:13:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-22T06:59:33.000Z (almost 1 year ago)
- Last Synced: 2024-12-07T12:11:51.650Z (15 days ago)
- Topics: climate, climatology, earth-engine, earth-observation, gis, gridded, netcdf, raster, time-series, weather, wx, xarray
- Language: Python
- Homepage: https://wxee.readthedocs.io/en/latest/
- Size: 35.2 MB
- Stars: 206
- Watchers: 10
- Forks: 15
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- Contributing: docs/contributing.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-meteo - wxee
- Awesome-GEE - wxee - A Python interface between Earth Engine and xarray for processing weather and climate data. (Python API / Packages)
README
.. image:: https://raw.githubusercontent.com/aazuspan/wxee/main/docs/_static/wxee.png
:alt: wxee .-- -..-
:width: 200
:target: https://github.com/aazuspan/wxee|
.. image:: https://img.shields.io/badge/Earth%20Engine%20API-Python-green
:alt: Earth Engine Python
:target: https://developers.google.com/earth-engine/tutorials/community/intro-to-python-api
.. image:: https://img.shields.io/pypi/v/wxee
:alt: PyPI
:target: https://pypi.org/project/wxee/
.. image:: https://img.shields.io/conda/vn/conda-forge/wxee.svg
:alt: conda-forge
:target: https://anaconda.org/conda-forge/wxee
.. image:: https://colab.research.google.com/assets/colab-badge.svg
:alt: Open in Colab
:target: https://colab.research.google.com/github/aazuspan/wxee/blob/main/docs/examples/image_collection_to_xarray.ipynb
.. image:: https://readthedocs.org/projects/wxee/badge/?version=latest&style=flat
:alt: Read the Docs
:target: https://wxee.readthedocs.io/en/latest/?badge=latest
.. image:: https://github.com/aazuspan/wxee/actions/workflows/tests.yml/badge.svg
:alt: Build status
:target: https://github.com/aazuspan/wxee
.. image:: https://codecov.io/gh/aazuspan/wxee/branch/main/graph/badge.svg?token=OeSeq4b7NF
:alt: Code coverage
:target: https://codecov.io/gh/aazuspan/wxee------------
.. image:: https://raw.githubusercontent.com/aazuspan/wxee/main/docs/_static/demo_001.gif
:alt: Demo downloading weather data to xarray using wxee.What is wxee?
-------------
`wxee `_ was built to make processing gridded, mesoscale time series data quick
and easy by integrating the data catalog and processing power of `Google Earth Engine `_ with the
flexibility of `xarray `_, with no complicated setup required. To accomplish this, wxee implements
convenient methods for data processing, aggregation, downloading, and ingestion.`wxee `__ can be found in the `Earth Engine Developer Resources `_!
Features
--------
* Time series image collections to `xarray `__ or `GeoTIFF `_ in one line of code
* `Climatological anomalies `_ and temporal `aggregation `_, `interpolation `_, `smoothing `_, and `gap-filling `_ in Earth Engine
* `Color composite plots `_ from **xarray** datasets
* Parallel processing for fast downloadsTo see some of the capabilities of wxee and try it yourself, check out the interactive notebooks `here `__!
Install
------------Pip
~~~.. code-block:: bash
pip install wxee
Conda
~~~~~.. code-block:: bash
conda install -c conda-forge wxee
Quickstart
----------Setup
~~~~~
Once you have access to Google Earth Engine, just import and initialize :code:`ee` and :code:`wxee`... code-block:: python
import ee
import wxeewxee.Initialize()
Download Images
~~~~~~~~~~~~~~~Download and conversion methods are extended to :code:`ee.Image` and :code:`ee.ImageCollection` using the
:code:`wx` accessor. Just :code:`import wxee` and use the :code:`wx` accessor.xarray
^^^^^^.. code-block:: python
ee.ImageCollection("IDAHO_EPSCOR/GRIDMET").wx.to_xarray()
GeoTIFF
^^^^^^^.. code-block:: python
ee.ImageCollection("IDAHO_EPSCOR/GRIDMET").wx.to_tif()
Create a Time Series
~~~~~~~~~~~~~~~~~~~~Additional methods for processing image collections in the time dimension are available through the :code:`TimeSeries` subclass.
A :code:`TimeSeries` can be created from an existing :code:`ee.ImageCollection`..... code-block:: python
col = ee.ImageCollection("IDAHO_EPSCOR/GRIDMET")
ts = col.wx.to_time_series()Or instantiated directly just like you would an :code:`ee.ImageCollection`!
.. code-block:: python
ts = wxee.TimeSeries("IDAHO_EPSCOR/GRIDMET")
Aggregate Daily Data
~~~~~~~~~~~~~~~~~~~~Many weather datasets are in daily or hourly resolution. These can be aggregated to coarser resolutions using the :code:`aggregate_time`
method of the :code:`TimeSeries` class... code-block:: python
ts = wxee.TimeSeries("IDAHO_EPSCOR/GRIDMET")
monthly_max = ts.aggregate_time(frequency="month", reducer=ee.Reducer.max())Calculate Climatological Means
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Long-term climatological means can be calculated using the :code:`climatology_mean` method of the :code:`TimeSeries` class.
.. code-block:: python
ts = wxee.TimeSeries("IDAHO_EPSCOR/GRIDMET")
mean_clim = ts.climatology_mean(frequency="month")Contribute
----------Bugs or feature requests are always appreciated! They can be submitted `here `__.
Code contributions are also welcome! Please open an `issue `__ to discuss implementation,
then follow the steps below. Developer setup instructions can be found `in the docs `__.