Skip to content

Wematics/WM-API-Documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wematics Client Documentation

Overview

The Wematics API Client enables users to access, retrieve, and process sky camera images, metadata, and related environmental data efficiently. This guide provides step-by-step instructions on installation, authentication, and usage.

Installation

Ensure you have Python installed, then install the wematics package using pip:

pip install wematics

Quick Start Guide

1. Authenticate and Initialize Client

from wematics import Skycamera

client = Skycamera('YOUR_API_KEY')
cameras = client.list_cameras()
camera = cameras['cameras'][1]
print("Available cameras:", cameras['cameras'])

2. Retrieve Available Variables

variables = client.list_variables(camera)
print(f"Variables for {camera}:", variables['variables'])

HDR Image Handling

3. Retrieve Available HDR Image Dates

dates = client.list_dates(camera, "HDR")
day = dates['dates'][-1]
print("Available HDR Dates:", dates['dates'])
print("Selected day:", day)

4. Fetch HDR Files for a Specific Date (UTC)

files = client.list_files(camera, "HDR", day, "utc")
file = files['files'][50]
print(f"Files for {camera}, HDR on {day}:", files['files'])
print("Total HDR files:", len(files['files']))

5. Download a Specific HDR File (UTC)

client.download_file(camera, "HDR", file, timezone="utc")

6. Fetch and Download HDR Files (Local Time)

files = client.list_files(camera, "HDR", day, "local")
file = files['files'][50]
print(f"Files for {camera}, HDR on {day}:", files['files'])
print("Total HDR files:", len(files['files']))
client.download_file(camera, "HDR", file, timezone="local")

7. Bulk Download HDR Files in a Time Range (UTC)

start_datetime = "2025-02-18_17_00_00"
end_datetime = "2025-02-18_17_05_00"
client.download_files_in_range(camera, "HDR", start_datetime, end_datetime, "", timezone="utc")
print(f"Files from {start_datetime} to {end_datetime} downloaded to ./downloads")

Cloud Camera (CC) Image Handling

8. Fetch Available Cloud Camera (CC) Images

files = client.list_files(camera, "CC", "2025-02-18")
file = files['files'][0]
print("Available CC files:", files['files'])
print("Selected file:", file)

Downloading Measurement Data as CSV

9. Download CSV Data (UTC)

client.download_csv(camera, start="2025-01-01T00:00:00Z", end="2025-01-02T00:00:00Z", save_path="./data_utc.csv")

10. Download CSV Data (Local Time)

client.download_csv(camera, start_local="2025-01-01T00:00:00", end_local="2025-01-02T00:00:00", save_path="./data_local.csv")

API Reference

General API Methods

Method Description
list_cameras() Retrieves a list of available cameras.
list_variables(camera) Lists variables available for the specified camera.

File & Image Handling

Method Description
list_dates(camera, variable) Lists available dates for a specific variable (e.g., "HDR", "CC").
list_files(camera, variable, date, timezone='utc') Retrieves available files for a given date and variable.
download_file(camera, variable, file, timezone='utc') Downloads a specified file.
download_files_in_range(camera, variable, start_datetime, end_datetime, save_path, timezone='utc') Downloads files in a defined time range.

CSV Data Retrieval

Method Description
download_csv(camera, save_path, start=None, end=None, start_local=None, end_local=None) Retrieves measurement data as a CSV file. Use start and end for UTC times, or start_local and end_local for local times.

Frequently Asked Questions (FAQ)

1. How do I get my API key?

  • Your API key is provided when you register with Wematics. If lost, request a new one via support.

2. Can I use the API without authentication?

  • No, authentication via an API key is mandatory.

3. What time format should I use for time-based queries?

  • Use ISO 8601 for UTC (e.g., "2025-01-01T17:00:00Z").
  • For local time queries, use "YYYY-MM-DD HH:MM:SS".

4. What is the difference between HDR and CC?

  • HDR (High Dynamic Range): Sky imagery with enhanced contrast for better cloud detection.
  • CC (Cloud Cover): Cloud cover retrieved from sky images in percentage and oktas.

Preview of our cloud masks:


Additional Examples: Real Use of the Client

Below are examples demonstrating the real use of the Wematics client.

# !pip install wematics

from wematics import Skycamera

client = Skycamera('YOUR_API_KEY')
cameras = client.list_cameras()
camera = cameras['cameras'][0]
print("Available cameras:", cameras['cameras'])

variables = client.list_variables(camera)
print(f"Variables for {camera}:", variables['variables'])

dates = client.list_dates(camera, "HDR")
day = dates['dates'][-2]
print("Selected day:", day)

# List files for the selected day (defaults to UTC)
files = client.list_files(camera, "HDR", day)
# print("Available files:", files)

# List and download a specific file in UTC
files_utc = client.list_files(camera, 'HDR', day, 'utc')
file_utc = files_utc['files'][50]
print(f"Total UTC files for {day}:", len(files_utc['files']))
client.download_file(camera, 'HDR', file_utc, timezone='utc')
print(f"Downloaded UTC file: {file_utc}")

# List and download a specific file in Local Time
files_local = client.list_files(camera, 'HDR', day, 'local')
file_local = files_local['files'][50]
print(f"Total Local Time files for {day}:", len(files_local['files']))
client.download_file(camera, 'HDR', file_local, timezone='local')
print(f"Downloaded Local Time file: {file_local}")

# Download images between 17:00:00 and 17:05:00 UTC
start_datetime = '2025-02-18_17_00_00'
end_datetime = '2025-02-18_17_05_00'
client.download_files_in_range(camera, 'HDR', start_datetime, end_datetime, '', timezone='utc')
print(f"Files from {start_datetime} to {end_datetime} downloaded to ./downloads")

# Download Cloud Cover (CC) data file
files_cc = client.list_files(camera, "CC", '2025-02-18')
file_cc = files_cc['files'][0]
client.download_file(camera, "CC", file_cc, timezone='utc')
print(f"Downloaded CC file: {file_cc}")

# Download Global Horizontal Irradiance (GHI) data file
files_ghi = client.list_files(camera, "GHI", '2025-02-18')
file_ghi = files_ghi['files'][0]
client.download_file(camera, "GHI", file_ghi, timezone='utc')
print(f"Downloaded GHI file: {file_ghi}")

Support

For further assistance, please contact our support team.

About

Wematics API Documentation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors