No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
pyEOM
LICENSE
LICENSE.txt
Readme.md

Readme.md

pyEOM

pyEOM is the Python package for the Earth Observation Monitor (www.earth-observation-monitor.net), a project developed by the Friedrich-Schiller-University Jena, Department for Earth Observation (www.eo.uni-jena.de).

You can use pyEOM to extract time-series data for different MODIS products and Landsat data and a given geometry (individual Pixel or Polygon).

Please note: The development of this package is in an early state. Documentation, testing and completion of the work will follow.

If you have any questions, please do not hesitate to contact me: Jonas Eberle jonas.eberle@uni-jena.de

Installation

Needed Python libraries:

  • beautifulsoup4
  • pyspatialite
  • osgeo
  • numpy

Needed command-line software:

  • gdal_translate
  • gdalwarp
  • gdallocationinfo
  • gdalbuildvrt
  • gdal_merge.py

Please make sure that the command-line tools are within the System path. Otherwise you have to specify the path to the tools within the GDAL class (class variable "path") in processing.py.

Further requirements: For MODIS HDF data processing, HDF4 image format has to be available for gdal command-line tools. Using the original data source for MODIS Land Products (LPDAAC), user login information from NASA Earthdata are required (see item 'userPwd' in task dictionary).

Usage

from pyEOM import tasks
ingest = tasks.Ingestion({
    'dataset': 'MODIS/MOD13Q1',
    'geom': 'POLYGON((7.807615733070551 26.259757466002124,7.434080576820532 25.607681923751194,8.510740733070508 25.09140328282509,9.082029795570381 25.884760600666922,7.807615733070551 26.259757466002124))',
    'start': '2001-01-01',
    'end': '2001-02-01',
    'qualityValue': '0;1',
    'qualityBand': 'PR',
    'publishPath': '/tmp/pyEOM',
    'format': 'HDF4Image',
    'EPSG': None,
    'resample': None,
    'source': 'LPDAAC',
    'userPwd': 'username:password'
})
output = ingest.start()

Installation

No setup.py is available at the moment. Please download the pyEOM folder and set the Python path to the parent directory. import sys sys.path.append('/directory/to/parent/folder/of/pyEOM')

Available datasets

  • MODIS Surface Reflectance: MOD09A1, MOD09Q1
  • MODIS Snow Cover: MOD10A1, MYD10A1, MOD10A2, MYD10A2, MOD10C1, MYD10C1, MOD10C2, MYD10C2, MOD10CM, MYD10CM
  • MODIS Land Surface Temperature: MOD11A1, MYD11A1, MOD11A2, MYD11A2, MOD11B1, MYD11B1, MOD11C1, MYD11C1, MOD11C2, MYD11C2, MOD11C3, MYD11C3
  • MODIS Vegetation Indices: MOD13A1, MYD13A1, MOD13A2, MYD13A2, MOD13A3, MYD13A3, MOD13C1, MYD13C1, MOD13C2, MYD13C2, MOD13Q1, MYD13Q1
  • MODIS Leaf Area Index - FPAR: MCD15A2, MCD15A3
  • MODIS Albedo: MCD43A3
  • MODIS Vegetation Continuous Fields: MOD44B
  • MODIS Thermal Anomalies & Fire: MCD45A1

Further information to the datasets can be found at the following sites:

Several MODIS and especially Landsat datasets are also available using Google Earth Engine.

Google Earth Engine

If you have an account for the Google Earth Engine (https://earthengine.google.org), you can also use the Python bindings to have access to specific MODIS products and Landsat datasets. To install the earthengine Python API see the following documentation: https://developers.google.com/earth-engine/python_install pip install earthengine-api

Please set the variables MY_SERVICE_ACCOUNT and MY_PRIVATE_KEY_FILE in gee_init.py to your service account username and the private key file. Therefore you need a service account that needs to be whitelisted first by the Google Earth Engine team. Please see the following documentation for more information: https://developers.google.com/earth-engine/service_account

Examples:

from pyEOM.datasets import Landsat
source = Landsat.GEE({'dataset': 'LANDSAT/LC8_L1T', 'geom': 'POINT(11 51)'})
output = source.ingest()

from pyEOM.datasets import MODIS
source = MODIS.GEE({'dataset': 'MODIS/MOD13Q1', 'geom': 'POINT(11 51)'})
output = source.ingest()