R/charge_shp_STAQ.R

Defines functions charge_shp_STAQ

Documented in charge_shp_STAQ

#' charge_shp_STAQ
#'
#' charge sous forme d'objet sf le shape des stations de qualité en France (ou un extrait) à partir du flux wms du SANDRE
#'
#' @param crs valeur du code de projection dans lequel renvoyer le résultat (par défaut Lambert 93, indiquer 4326 pour du wgs84)
#' @param shp_emprise objet SF qui délimite le périmètre sur lequel il faut renvoyer les stations
#'
#' @return la fonction renvoie un objet sf avec l'emprise des SAGE sélectionnés et les attributs correspondants
#' @examples Vilaine<-charge_shp_SAGE(nom_sage="Vilaine")
#' @examples stations<-charge_shp_STAQ(shp_emprise=Vilaine)
#' @export
charge_shp_STAQ <- function(crs = 2154, shp_emprise = NULL) {
  # on charge le shp des SAGE de France à partir de l'atlas carto du SANDRE
  url <- "https://services.sandre.eaufrance.fr/geo/stq"

  sf_prov <- url %>%
    parse_url() %>%
    list_merge(
      query = list(
        service = "wfs",
        version = "1.1.0",
        # optional
        request = "GetFeature",
        typeName = "StationMesureEauxSurface",
        srsname = 'EPSG:4326',
        outputFormat = "application/json; subtype=geojson"
      )
    ) %>%
    build_url()

  bel_regions <- read_sf(sf_prov, crs = 4326)

  # sélection des stations dans l'emprise de découpe
  if (!is.null(shp_emprise)) {
    # on reprojette dans en Lambert 93 avant decoupage
    bel_regions <- st_transform(bel_regions, crs = 2154)
    shp_emprise <- st_transform(shp_emprise, crs = 2154)

    # on découpe par rapport à l'emprise de l'objet shp_emprise
    bel_regions <- bel_regions[shp_emprise,]
  }

  # on projette dans le crs de sortie
  bel_regions <- st_transform(bel_regions, crs = crs)


  return(bel_regions)
}
AnthonyDEBUR/tools4DCE documentation built on Feb. 14, 2025, 5:40 p.m.