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.
Ensure you have Python installed, then install the wematics package using pip:
pip install wematicsfrom wematics import Skycamera
client = Skycamera('YOUR_API_KEY')
cameras = client.list_cameras()
camera = cameras['cameras'][1]
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'][-1]
print("Available HDR Dates:", dates['dates'])
print("Selected day:", day)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']))client.download_file(camera, "HDR", file, timezone="utc")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")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")files = client.list_files(camera, "CC", "2025-02-18")
file = files['files'][0]
print("Available CC files:", files['files'])
print("Selected file:", file)client.download_csv(camera, start="2025-01-01T00:00:00Z", end="2025-01-02T00:00:00Z", save_path="./data_utc.csv")client.download_csv(camera, start_local="2025-01-01T00:00:00", end_local="2025-01-02T00:00:00", save_path="./data_local.csv")| Method | Description |
|---|---|
list_cameras() |
Retrieves a list of available cameras. |
list_variables(camera) |
Lists variables available for the specified camera. |
| 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. |
| 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. |
- Your API key is provided when you register with Wematics. If lost, request a new one via support.
- No, authentication via an API key is mandatory.
- Use ISO 8601 for UTC (e.g.,
"2025-01-01T17:00:00Z"). - For local time queries, use
"YYYY-MM-DD HH:MM:SS".
- 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.
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}")For further assistance, please contact our support team.