Documentation ¶
Index ¶
- Constants
- type Controller
- func (c *Controller) GetAllObservations(ctx context.Context, parameters ObservationsRequest) (metrics []Observation, err error)
- func (c *Controller) GetObservations(ctx context.Context, parameters ObservationsRequest) (response ObservationsResponse, err error)
- func (c *Controller) GetObservationsNextPageCursor(rawURL string) (cursor string, err error)
- type Observation
- type ObservationType
- type ObservationsRequest
- type ObservationsResponse
- type SerieStatus
- type Sort
Constants ¶
const (
// RequestMaxSize is the maximum number of series that is queriable in one request
RequestMaxSize = 20000
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
Controller handles the communication with hubeau. Instanciate with New().
func (*Controller) GetAllObservations ¶
func (c *Controller) GetAllObservations(ctx context.Context, parameters ObservationsRequest) (metrics []Observation, err error)
GetAllObservations will automatically download and merge results available on multiples pages in order to have consolidated data
func (*Controller) GetObservations ¶
func (c *Controller) GetObservations(ctx context.Context, parameters ObservationsRequest) (response ObservationsResponse, err error)
GetObservations maps https://hubeau.eaufrance.fr/page/api-hydrometrie#/hydrometrie/observations
func (*Controller) GetObservationsNextPageCursor ¶
func (c *Controller) GetObservationsNextPageCursor(rawURL string) (cursor string, err error)
GetObservationsNextPageCursor allows to extract the cursor (to be used in ObservationsRequest.Cursor) from the next URL found in ObservationsResponse.Next
type Observation ¶
type Observation struct { SiteCode string `json:"code_site"` // Le site hydrométrique est identifié par un code unique au niveau national construit selon la règle suivante : [Code de la zone hydrographique sur 4 caractères sur laquelle est situé le site hydrologique] + [Numéro incrémental sans signification particulière sur 4 caractères]. Par exemple, J4310010 pour un site localisé sur la zone hydrologique J431. StationCode string `json:"code_station"` // Code de la station hydrométrique. Chaque station est identifiée par un code unique pour un site donné. L'identifiant complet de la station hydrométrique est le code du site + le code de la station sur 2 caractères. Type ObservationType `json:"grandeur_hydro"` SerieStart time.Time `json:"date_debut_serie"` SerieEnd time.Time `json:"date_fin_serie"` SerieStatus SerieStatus `json:"statut_serie"` // Statut de la série : niveau de validité de la donnée. Valeurs possibles : 0, 4, 8, 12, 16 (sans validation, brut, corrigé, pré-validé, validé). Voir http://services.sandre.eaufrance.fr/References/1.3.0/jeuDonnees.php?recherche=510&function=getFicheNsa&v=3.1 SystemCodeAltiSerie int `json:"code_systeme_alti_serie"` ObsDate time.Time `json:"date_obs"` ObsResultat float64 `json:"resultat_obs"` ObsMethodCode int `json:"code_methode_obs"` ObsMethodLib string `json:"libelle_methode_obs"` ObsQualificationCode int `json:"code_qualification_obs"` ObsQualificationLib string `json:"libelle_qualification_obs"` ObsHydroCont bool `json:"continuite_obs_hydro"` Longitude float64 `json:"longitude"` Latitude float64 `json:"latitude"` }
Observation represents a single observation
type ObservationType ¶
type ObservationType string
ObservationType defines the type of observation
const ( // ObservationTypeLevel represents the water level ObservationTypeLevel ObservationType = "H" // ObservationTypeFlow represents the water flow ObservationTypeFlow ObservationType = "Q" // ObservationTypeLevelAndFlow represents both the water level and flow (used in query only) ObservationTypeLevelAndFlow ObservationType = "H,Q" )
type ObservationsRequest ¶
type ObservationsRequest struct { BBox []float64 `url:"bbox,omitempty"` // Rectangle d'emprise de l'objet demandé, emprise au format : min longitude, min latitude, max longitude, max latitude avec les coordonnées en WGS84 (EPSG:4326), le point doit être utilisé comme séparateur décimal, exemple : 1.6194,47.7965,2.1910,47.9988 EntityCode []string `url:"code_entite,omitempty"` // Le site hydrométrique est identifié par un code unique au niveau national construit selon la règle suivante : [Code de la zone hydrographique sur 4 caractères sur laquelle est situé le site hydrologique] + [Numéro incrémental sans signification particulière sur 4 caractères]. Par exemple, J4310010 pour un site localisé sur la zone hydrologique J431.Code de la station hydrométrique. Chaque station est identifiée par un code unique pour un site donné. L'identifiant complet de la station hydrométrique est le code du site + le code de la station sur 2 caractères. Possibilité d'utiliser un pattern (ex: K* Cursor string `url:"cursor,omitempty"` // Curseur de pagination StartDate time.Time `url:"date_debut_obs,omitempty"` // Date de début observation hydro (exprimée en TU). Ne peut pas être antérieure de plus d'1 mois par rapport à la date actuelle, les formats de date (ISO 8601) supportés : yyyy-MM-dd, yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd'T'HH:mm:ssXXX, exemples : 2018-12-01, 2018-12-11T00:00:01, 2018-12-11T00:00:01Z EndDate time.Time `url:"date_fin_obs,omitempty"` // Date de fin observation hydro (exprimée en TU), les formats de date (ISO 8601) supportés : yyyy-MM-dd, yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd'T'HH:mm:ssXXX, exemples : 2018-12-01, 2018-12-11T00:00:01, 2018-12-11T00:00:01Z Distance float64 `url:"distance,omitempty"` // Rayon de recherche en kilomètre, le point doit être utilisé comme séparateur décimal, exemple : 30 Type ObservationType `url:"grandeur_hydro,omitempty"` // Which measurements to return Latitude float64 `url:"latitude,omitempty"` // Latitude du point en WGS84 pour la recherche par rayon, le point doit être utilisé comme séparateur décimal, exemple : 47.829 Longitude float64 `url:"longitude,omitempty"` // Longitude du point en WGS84 pour la recherche par rayon, le point doit être utilisé comme séparateur décimal, exemple : 1.937 Size int `url:"size,omitempty"` // Number of value to return (default: 20, max: 20000) Sort Sort `url:"sort,omitempty"` // Ordre de tri (asc ou desc) sur la date d'observation (si la valeur n'est pas renseignée, la valeur par défaut est desc) Timestep int `url:"timestep,omitempty"` // Pas de temps fixe exprimé en minutes avec des limites (de 10 minutes à 60 minutes), ne fonctionne que pour la recherche sur un seul code entite, le service n'a pas de pagination }
ObservationsRequest allows to set request parameter for https://hubeau.eaufrance.fr/page/api-hydrometrie#/hydrometrie/observations
type ObservationsResponse ¶
type ObservationsResponse struct { Count int `json:"count"` // Le nombre total de résultat First string `json:"first"` // URL de la 1er page des résultats Prev *string `json:"prev"` // Toujours null Next string `json:"next"` // URL de la page suivante APIVersion string `json:"api_version"` // Version de l'API (https://semver.org/) Data []Observation `json:"data"` // Les résultats de la requête sous forme de liste }
ObservationsResponse represents the answer payload for GetObservations
type SerieStatus ¶
type SerieStatus int
SerieStatus represents the status of a custom observation/serie.
const ( // SerieStatusNoValidation represent a serie which will not have a validation SerieStatusNoValidation SerieStatus = 0 // SerieStatusRaw represents a serie which has not been altered SerieStatusRaw SerieStatus = 4 // SerieStatusCorrected represents a serie which has received a correction SerieStatusCorrected SerieStatus = 8 // SerieStatusPreValidated represents a serie which is pre validated SerieStatusPreValidated SerieStatus = 12 // SerieStatusValidated represents a serie which is validated SerieStatusValidated SerieStatus = 16 )