Skip to main content

AppEEARS API Client

Python client for interacting with NASA Earthdata's AρρEEARS API. This package facilitates authentication, querying, and handling of data from AppEEARS, allowing Python users to efficiently access and manipulate remote sensing data.

Features

  • Easy Authentication: Seamlessly authenticate using NASA Earthdata Login.
  • Data Retrieval: Functions to query and manipulate available product data.
  • Error Handling: Integrated API-specific error handling to manage and respond to API issues effectively.

Installation

Install the package using pip:

pip install appeears-api-client

Usage

Initial configuration

Import the client and create an instance with your credentials:

from appeears_api.client import APIClient

client = APIClient(username='your_username', password='your_password')

Authentication

Log in to authenticate and begin your session:

client.login()

Obtain product data

Retrieve information about a specific product by its ID:

product_info = client.get_product_info(product_id='MOD11A1.061')
print(product_info)

Retrieve All Products and Layers

Get details on all available products and their respective layers:

all_products = client.product_manager.get_all_products_and_layers()
print(all_products)

Fetch and Store Point Data

Submit a task for specific coordinates, bands, and time period, and retrieve the processed data:

response = client.submit_and_retrieve_point_task(
    latitude=34.05, 
    longitude=-118.25, 
    product_id='MOD11A1.061', 
    band_names=['LST_Day_1km', 'LST_Night_1km'], 
    start_date='2023-01-01', 
    end_date='2023-01-31'
)
print(response)

Sending Area-Based Tasks

The API client also supports submitting tasks based on a specific geographical area. This is particularly useful for processing large datasets that cover geographical regions. Below is an example of how to submit an area-based task using the API client:

Example: Retrieve Temperature Data for a Defined Area

This example demonstrates how to submit a task to retrieve daytime and nighttime land surface temperature data for a specific area defined by GeoJSON coordinates.

import os
from datetime import datetime
from src.appeears import APIClient

# Load environment variables (ensure your .env file contains the necessary API credentials)
from dotenv import load_dotenv
load_dotenv()

# Create an instance of the API client with your credentials
client = APIClient(username=os.getenv('APPEEARS_USER'), password=os.getenv('APPEEARS_PASS'))

# Define the geographical area of interest in GeoJSON format
geo_json = {
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {},
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [-78.54051709643014, 18.699926638788938],
                        [-78.54051709643014, 17.571631940899735],
                        [-75.89563723926521, 17.571631940899735],
                        [-75.89563723926521, 18.699926638788938],
                        [-78.54051709643014, 18.699926638788938]
                    ]
                ]
            }
        }
    ]
}

# Define the time period for the data
start_date = datetime.strptime("01-01-2023", "%m-%d-%Y")
end_date = datetime.strptime("01-31-2023", "%m-%d-%Y")

# Define the product and layers to retrieve
layers = [
    {"product": "MOD11A1.061", "layer": "LST_Day_1km"},
    {"product": "MOD11A1.061", "layer": "LST_Night_1km"}
]

# Submit the area-based task and get the response
response = client.submit_and_retrieve_area_task(
    geo_json=geo_json,
    product_id="MOD11A1.061",
    band_names=["LST_Day_1km", "LST_Night_1km"],
    start_date=start_date,
    end_date=end_date
)

# Handle the response
if 'task_id' in response:
    print("Area task submitted successfully. Task ID:", response['task_id'])
else:
    print("Error submitting area task:", response)

Logout

Don't forget to log out when you are finished:

client.logout()

Contributions

Contributions are welcome! If you wish to contribute, please:

  • Fork the repository.
  • Create a new branch for your modifications.
  • Make your changes and write tests when possible.
  • Send a pull request with a clear description of the changes.

License

Distributed under the MIT license. See LICENSE for more information.

Contact

Francisco Furey

GMAIL LinkedIn

Follow the project and contribute on GitHub.

Metadata

Release files for appeears-api-client 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for appeears-api-client 0.1.3
File Size Uploaded
appeears_api_client-0.1.3.tar.gz 125.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for appeears-api-client 0.1.3
File Interpreter ABI Platform
appeears_api_client-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 174.9 kB

Release files / appeears_api_client-0.1.3.tar.gz

Download URL appeears_api_client-0.1.3.tar.gz
Size 125.4 kB
Tags Source
SHA-256 checksum
How to use checksums
13fd086d7b131e4956d27090ec9fb75e891f3baeff6dbbe9a8ffa649bd9092be
BLAKE2b-256 checksum
How to use checksums
ca98a3c1202e9d1b4affa29cccd92625fe58d00b4f235587785088a9a231f225
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / appeears_api_client-0.1.3-py3-none-any.whl

Download URL appeears_api_client-0.1.3-py3-none-any.whl
Size 49.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c5b21f936de894a5ffce39783cb39721318796fb14134fd75b4095911d81dc2
BLAKE2b-256 checksum
How to use checksums
95c8de84030988ac852e73245fc638e287b9f703211f979e861f3a2e37df3338
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page