{"id":13570336,"url":"https://github.com/aazuspan/wxee","last_synced_at":"2025-05-16T06:07:13.278Z","repository":{"id":41571933,"uuid":"388301047","full_name":"aazuspan/wxee","owner":"aazuspan","description":"A Python interface between Earth Engine and xarray for processing time series data","archived":false,"fork":false,"pushed_at":"2024-12-14T02:00:40.000Z","size":36870,"stargazers_count":208,"open_issues_count":2,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-11T18:06:23.159Z","etag":null,"topics":["climate","climatology","earth-engine","earth-observation","gis","gridded","netcdf","raster","time-series","weather","wx","xarray"],"latest_commit_sha":null,"homepage":"https://wxee.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aazuspan.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-22T02:13:27.000Z","updated_at":"2025-04-27T05:23:42.000Z","dependencies_parsed_at":"2023-12-27T04:10:13.908Z","dependency_job_id":"7f068505-5bed-494c-b9c7-7dc050c6e437","html_url":"https://github.com/aazuspan/wxee","commit_stats":{"total_commits":242,"total_committers":1,"mean_commits":242.0,"dds":0.0,"last_synced_commit":"1c4159384ff69095ace6dc475360a2f6a43b336a"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aazuspan%2Fwxee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aazuspan%2Fwxee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aazuspan%2Fwxee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aazuspan%2Fwxee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aazuspan","download_url":"https://codeload.github.com/aazuspan/wxee/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478190,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["climate","climatology","earth-engine","earth-observation","gis","gridded","netcdf","raster","time-series","weather","wx","xarray"],"created_at":"2024-08-01T14:00:51.182Z","updated_at":"2025-05-16T06:07:08.258Z","avatar_url":"https://github.com/aazuspan.png","language":"Python","readme":".. image:: https://raw.githubusercontent.com/aazuspan/wxee/main/docs/_static/wxee.png\n   :alt: wxee .-- -..-\n   :width: 200\n   :target: https://github.com/aazuspan/wxee\n\n|\n\n.. image:: https://img.shields.io/badge/Earth%20Engine%20API-Python-green\n   :alt: Earth Engine Python\n   :target: https://developers.google.com/earth-engine/tutorials/community/intro-to-python-api\n.. image:: https://img.shields.io/pypi/v/wxee\n   :alt: PyPI\n   :target: https://pypi.org/project/wxee/\n.. image:: https://img.shields.io/conda/vn/conda-forge/wxee.svg\n   :alt: conda-forge\n   :target: https://anaconda.org/conda-forge/wxee\n.. image:: https://colab.research.google.com/assets/colab-badge.svg\n   :alt: Open in Colab\n   :target: https://colab.research.google.com/github/aazuspan/wxee/blob/main/docs/examples/image_collection_to_xarray.ipynb\n.. image:: https://readthedocs.org/projects/wxee/badge/?version=latest\u0026style=flat\n   :alt: Read the Docs\n   :target: https://wxee.readthedocs.io/en/latest/?badge=latest\n.. image:: https://github.com/aazuspan/wxee/actions/workflows/tests.yml/badge.svg\n   :alt: Build status\n   :target: https://github.com/aazuspan/wxee\n.. image:: https://codecov.io/gh/aazuspan/wxee/branch/main/graph/badge.svg?token=OeSeq4b7NF\n   :alt: Code coverage\n   :target: https://codecov.io/gh/aazuspan/wxee\n\n------------\n\n.. image:: https://raw.githubusercontent.com/aazuspan/wxee/main/docs/_static/demo_001.gif\n  :alt: Demo downloading weather data to xarray using wxee.\n\n\nWhat is wxee?\n-------------\n`wxee \u003chttps://github.com/aazuspan/wxee\u003e`_ was built to make processing gridded, mesoscale time series data quick \nand easy by integrating the data catalog and processing power of `Google Earth Engine \u003chttps://earthengine.google.com/\u003e`_ with the \nflexibility of `xarray \u003chttps://github.com/pydata/xarray\u003e`_, with no complicated setup required. To accomplish this, wxee implements \nconvenient methods for data processing, aggregation, downloading, and ingestion.\n\n`wxee \u003chttps://github.com/aazuspan/wxee\u003e`__ can be found in the `Earth Engine Developer Resources \u003chttps://developers.google.com/earth-engine/tutorials/community/developer-resources#python\u003e`_!\n\n\nFeatures\n--------\n* Time series image collections to `xarray \u003chttps://wxee.readthedocs.io/en/latest/examples/image_collection_to_xarray.html\u003e`__ or `GeoTIFF \u003chttps://wxee.readthedocs.io/en/latest/examples/downloading_images_and_collections.html\u003e`_ in one line of code\n* `Climatological anomalies \u003chttps://wxee.readthedocs.io/en/latest/examples/climatology_anomaly.html\u003e`_ and temporal `aggregation \u003chttps://wxee.readthedocs.io/en/latest/examples/temporal_aggregation.html\u003e`_, `interpolation \u003chttps://wxee.readthedocs.io/en/latest/examples/temporal_interpolation.html\u003e`_, `smoothing \u003chttps://wxee.readthedocs.io/en/latest/generated/wxee.time_series.TimeSeries.rolling_time.html\u003e`_, and `gap-filling \u003chttps://wxee.readthedocs.io/en/latest/generated/wxee.time_series.TimeSeries.fill_gaps.html\u003e`_ in Earth Engine\n* `Color composite plots \u003chttps://wxee.readthedocs.io/en/latest/examples/color_composites.html\u003e`_ from **xarray** datasets\n* Parallel processing for fast downloads\n\n\nTo see some of the capabilities of wxee and try it yourself, check out the interactive notebooks `here \u003chttps://wxee.readthedocs.io/en/latest/examples.html\u003e`__!\n\nInstall\n------------\n\nPip\n~~~\n\n.. code-block:: bash\n\n   pip install wxee\n\nConda\n~~~~~\n\n.. code-block:: bash\n\n    conda install -c conda-forge wxee\n\n\nQuickstart\n----------\n\nSetup\n~~~~~\nOnce you have access to Google Earth Engine, just import and initialize :code:`ee` and :code:`wxee`.\n\n.. code-block:: python\n   \n   import ee\n   import wxee\n\n   wxee.Initialize()\n\n\nDownload Images\n~~~~~~~~~~~~~~~\n\nDownload and conversion methods are extended to :code:`ee.Image` and :code:`ee.ImageCollection` using the \n:code:`wx` accessor. Just :code:`import wxee` and use the :code:`wx` accessor.\n\nxarray\n^^^^^^\n\n.. code-block:: python\n\n   ee.ImageCollection(\"IDAHO_EPSCOR/GRIDMET\").wx.to_xarray()\n\nGeoTIFF\n^^^^^^^\n\n.. code-block:: python\n\n   ee.ImageCollection(\"IDAHO_EPSCOR/GRIDMET\").wx.to_tif()\n\n\nCreate a Time Series\n~~~~~~~~~~~~~~~~~~~~\n\nAdditional methods for processing image collections in the time dimension are available through the :code:`TimeSeries` subclass.\nA :code:`TimeSeries` can be created from an existing :code:`ee.ImageCollection`...\n\n.. code-block:: python\n\n   col = ee.ImageCollection(\"IDAHO_EPSCOR/GRIDMET\")\n   ts = col.wx.to_time_series()\n\nOr instantiated directly just like you would an :code:`ee.ImageCollection`!\n\n.. code-block:: python\n\n   ts = wxee.TimeSeries(\"IDAHO_EPSCOR/GRIDMET\")\n\n\nAggregate Daily Data\n~~~~~~~~~~~~~~~~~~~~\n\nMany weather datasets are in daily or hourly resolution. These can be aggregated to coarser resolutions using the :code:`aggregate_time`\nmethod of the :code:`TimeSeries` class.\n\n.. code-block:: python\n\n   ts = wxee.TimeSeries(\"IDAHO_EPSCOR/GRIDMET\")\n   monthly_max = ts.aggregate_time(frequency=\"month\", reducer=ee.Reducer.max())\n\nCalculate Climatological Means\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nLong-term climatological means can be calculated using the :code:`climatology_mean` method of the :code:`TimeSeries` class.\n\n.. code-block:: python\n\n   ts = wxee.TimeSeries(\"IDAHO_EPSCOR/GRIDMET\")\n   mean_clim = ts.climatology_mean(frequency=\"month\")\n\nContribute\n----------\n\nBugs or feature requests are always appreciated! They can be submitted `here \u003chttps://github.com/aazuspan/wxee/issues\u003e`__. \n\nCode contributions are also welcome! Please open an `issue \u003chttps://github.com/aazuspan/wxee/issues\u003e`__ to discuss implementation, \nthen follow the steps below. Developer setup instructions can be found `in the docs \u003chttps://wxee.readthedocs.io/en/latest/contributing.html\u003e`__.\n\n\n","funding_links":[],"categories":["Python","Python API","Uncategorized","Google Earth Engine"],"sub_categories":["Packages","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faazuspan%2Fwxee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faazuspan%2Fwxee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faazuspan%2Fwxee/lists"}