paul-carteron / happign

Happign allows you to use the APIs provided by the IGN (France) to download their public data.
https://paul-carteron.github.io/happign/
GNU General Public License v3.0
27 stars 3 forks source link

get_wms_raster : erreur sur absence de données #26

Closed mgageo closed 2 months ago

mgageo commented 2 months ago

D'abord merci pour ce package, c'est un vrai plaisir pour explorer/utiliser les données de l'IGN.

Pour une commune qui n'est pas en bordure de mer (Domloup/35099), j'essaye de récupérer les layers de "ortho". Pour "ORTHOIMAGERY.ORTHOPHOTOS.COAST2000", get_wms_raster sort en erreur :

Erreur : ORTHOIMAGERY.ORTHOPHOTOS.COAST2000 isn't a valid layer.

Est-il possible d'avoir un paramètre pour configurer le comportement en l'absence de données ?

paul-carteron commented 2 months ago

Bonjour, merci à vous !

La couche ORTHOIMAGERY.ORTHOPHOTOS.COAST2000 n'est pas une couche wms-r mais une couche wmts ce qui explique le message d'erreur :

library(happign)
library(terra)

domloup <- get_apicarto_cadastre("35099", "commune")

wms_layers <- get_layers_metadata("wms-r")$Name
wms_coast_layer <- grep("COAST2000", wms_layers, ignore.case =T, value=T)
print(wms_coast_layer)
#> character(0)

wmts_layers <- get_layers_metadata("wmts")$Identifier
wmts_coast_layer <- grep("COAST2000", wmts_layers, ignore.case =T, value=T)
print(wmts_coast_layer)
#> [1] "ORTHOIMAGERY.ORTHOPHOTOS.COAST2000"

coast_rast <- get_wmts(domloup, layer = wmts_coast_layer, zoom=8)
#> 0...10...20...30...40...50...60...70...80...90...100 - done.

Pour tester si un raster contient uniquement des NA, vous pouvez utiliser le code ci-dessous.

   if (sum(minmax(allNA(rast))) == 2){
      message("Raster is empty, NULL is returned")
      return(NULL)
   }
#> Raster is empty, NULL is returned

Created on 2024-06-06 with reprex v2.1.0

mgageo commented 2 months ago

Merci pour cette réponse. Effectivement je me suis mélangé les pinceaux : j'ai fait une demande get_layers_metadata pour un data_type suivi d'un get pour un autre type. Pour tester si un raster est vide, j'utilise la taille du fichier, c'est certainement moins fiable. Et je n'ai pas la fonction minmax.

paul-carteron commented 2 months ago

La fonction minmax vient du package terra.

Dans la version en développement d'happign, les raster vides sont maintenant écartés et la fonction renvoi NULL.

mgageo commented 2 months ago

Je n'ai pas encore mis à jour happign et lorsque je télécharge les rasters je n'incluais que le package happign. En ajoutant terra, le test marche nickel.

paul-carteron commented 2 months ago

Super !