gaia / docs /request_data.py
AliceTt's picture
addded some docs for indicators
98a2104
raw
history blame
2.06 kB
import requests
import io
import logging
import xarray as xr
from datetime import date, timedelta
import json
with open('credentials.txt') as f:
pwd = f.readlines()
response = requests.post(
"https://api.ombreapp.fr/api/v1.0/links/token/",
data={"email": "[email protected]", "password": pwd, "permission": True},
)
token = response.json()["access"]
def get_air_sensors_data(plot_id, position,date_from = False, date_to= False, night=False):
if not date_from:
# Get Yesterday data by default
if night :
date_from = (date.today() - timedelta(2)).strftime("%Y-%m-%dT%H:%M:%S")[0:11] + "12:00:00"
date_to = (date.today() - timedelta(1)).strftime("%Y-%m-%dT%H:%M:%S")[0:11] + "11:50:00"
else :
date_from = (date.today() - timedelta(1)).strftime("%Y-%m-%dT%H:%M:%S")
date_to = date_from[0:11] + "23:50:00"
headers = {'Authorization': f"Bearer {token}", "Accept": "application/x-netcdf"}
# Get Climatic dataset as netcdf file
response = requests.get(
f"https://api.ombreapp.fr/api/v2.0/plots/{plot_id}/climatic_dataset/",
params={
"start_time": date_from,
"end_time": date_to,
"position": position
},
headers=headers
)
if response.status_code == 200:
# Open Dataset
ds_out = xr.open_dataset(io.BytesIO(response.content))
else:
logging.error(f"Error {response.status_code}: {response.content}")
ds_out
df_air = ds_out[['air_temperature','relative_humidity','photon_flux_density','wind_speed']].to_dataframe()
return df_air
def get_lat_lon(plot_id):
headers = {'Authorization': f"Bearer {token}"}
response = requests.get(
"https://api.ombreapp.fr/api/v2.0/plots/",
headers=headers
)
plots = json.loads(response.content)
plot = [plots[i] for i in range(len(plots)) if plots[i]['id'] == plot_id][0]
return (plot['zone']['coordinates'][0][0][1],plot['zone']['coordinates'][0][0][0])