Interpoler des valeurs à partir de valeurs de jeu de données maillées
Ce convertisseur interpole efficacement les valeurs à partir des valeurs d'un ensemble de données maillées.
En tant que tel, il est particulièrement utile pour les chercheurs travaillant avec des données de traces d'animaux (par exemple, le
IOOS Animal Telemetry Network ).
Ce convertisseur prend une table avec des colonnes de latitude, de longitude et d'heure (et peut-être d'autres colonnes) et renvoie une table avec des colonnes supplémentaires avec des valeurs interpolées basées sur la demande CSV spécifiée par l'utilisateur avec
des datasetID /variableName/algorithm/nearby (par exemple,
jplMURSST41/analysed_sst/Bilinear/4). Dans tous les cas, pour chaque latitude, longitude et point temporel que vous fournissez, le convertisseur recherche le nombre spécifié de valeurs proches à partir du datasetID /variable spécifié, puis applique l'algorithme spécifié pour créer la valeur interpolée.
Peu de gens utiliseront régulièrement cette page Web.
Au lieu de cela, la plupart des utilisateurs de ce service écriront et/ou utiliseront un script qui utilise le
service Web sous-jacent de cette page Web .
Ou,
contournez cette page Web et effectuez des conversions à partir d'un programme informatique, d'un script ou d'une page Web.
Remarques:
- Vérifiez toujours les résultats des convertisseurs.
Si vous pensez que le convertisseur a donné un résultat incorrect, veuillez envoyer les détails par e-mail à erd dot data at noaa dot gov .
- AVIS DE NON-RESPONSABILITÉ
Aucune personne ou organisation associée à ce site Web ne donne de garantie, expresse ou implicite, y compris les garanties de qualité marchande et d'adéquation à un usage particulier, ou n'assume aucune responsabilité légale pour l'exactitude, l'exhaustivité ou l'utilité de toute information sur ce site Web.
- Si un datasetID et/ou variable spécifiés ne sont pas actuellement disponibles, ou si l' algorithm ou la valeur nearby n'est pas valide, cela renvoie un message d'erreur.
- Les options de l' algorithm sont :
- Nearest
Cela regarde les n points de jeu de données nearby et renvoie le
plus proche valeur de jeu de données non-NaN (ou NaN s'ils sont tous NaN), tel quel.
Si >1 valeurs de jeu de données sont également proches du point source, cette méthode renverra l'une d'entre elles (non spécifiée).
- Bilinear (par défaut)
Cela examine les 4 points de jeu de données à nearby dans le plan de latitude et de longitude et renvoie la
valeur interpolée bilinéaire .
Cela gère les valeurs NaN et ne renvoie NaN pour un point que si les 4 points voisins sont des NaN.
Pour cet algorithm, la seule valeur autorisée de nearby est 4.
Cet algorithm est la valeur par défaut.
Si vous ne spécifiez pas un algorithm Bilinear/4 sera utilisé.
- Mean
Cela renvoie la moyenne des valeurs de l'ensemble de données nearby non NaN.
Cela effectue les calculs avec des doubles et renvoie des doubles, quel que soit le type de données de la variable.
Le paramètre à nearby par défaut pour cette option est 4.
- SD
Cela renvoie l'écart type des valeurs de l'ensemble de données nearby non NaN.
Cela effectue les calculs avec des doubles et renvoie des doubles, quel que soit le type de données de la variable.
Le paramètre à nearby par défaut pour cette option est 4.
- Median
Cela renvoie la médiane des valeurs de l'ensemble de données nearby non NaN.
Le paramètre à nearby par défaut pour cette option est 4.
Ceci effectue les calculs avec des doubles et renvoie des doubles, quel que soit le type de jeu de données de la variable.
- Scaled
Cela renvoie l'interpolation au carré de la distance inverse mise à l'échelle des valeurs de jeu de données nearby non NaN (Y).
Le poids pour chaque valeur de jeu de données à proximité est w = (1 - D/Dmax) 2 / (D/Dmax), où D est la distance (Davis, 1986, éq 5.68, page 371).
Ainsi, la valeur de l'ensemble de données la plus proche obtient un poids = 0.
Chaque point interpolé est E = ∑(w Y)/∑(w)
Si un point de jeu de données à proximité a une distance de 0, la valeur de ce point est utilisée comme valeur interpolée.
Cela effectue les calculs avec des doubles et renvoie des doubles, quel que soit le type de données de la variable.
Le paramètre à nearby par défaut pour cette option est 4.
- InverseDistance
Cela renvoie l'interpolation de distance inverse des valeurs de données nearby non NaN (Y).
Le poids pour chaque valeur de données à proximité est w = 1/D, où D est la distance (Davis, 1986, eq 5.67, page 367) .
Chaque valeur interpolée est E = ∑(w Y)/∑(w)
Si un point de jeu de données à proximité a une distance de 0, la valeur de ce point est utilisée comme valeur interpolée.
Cela effectue les calculs avec des doubles et renvoie des doubles, quel que soit le type de données de la variable.
Le paramètre à nearby par défaut pour cette option est 4.
- InverseDistance2
C'est comme InverseDistance, mais le poids pour chaque valeur de données à proximité est w = 1/D 2 .
- InverseDistance4
C'est comme InverseDistance, mais le poids pour chaque valeur de données à proximité est w = 1/D 4 .
- InverseDistance6
C'est comme InverseDistance, mais le poids pour chaque valeur de données à proximité est w = 1/D 6 .
Tous les algorithmes qui calculent les distances (Nearest, Bilinear, Scaled et tous les algorithmes InverseDistance ) calculent les distances dans l'espace d'index, pas avec les valeurs réelles de temps, de latitude et de longitude.
Ainsi, cela donne un poids égal à une unité d'indice de latitude et à une unité d'indice de longitude (et si 3D, à une unité d'indice de temps).
Si cela est inapproprié pour un datasetID / variable donné, utilisez l'une des autres options d' algorithm ou consultez
Pas ce que vous voulez ? au dessous de.
- nearby spécifie le nombre de points à utiliser par l' algorithm .
Seuls certains numéros sont autorisés.
Pour toutes les options d' algorithm, il existe des options 2D et 3D pour nearby .
Les options 2D (4, 16 et 36, correspondant à des carrés 2D dont les côtés sont longs de 1, 2 ou 3 valeurs d'index (2 2, 4 2, 6 2)) incluent des points proches dans le plan de latitude/longitude 2D.
Les options 3D (8, 64 et 216, correspondant à des cubes 3D avec des arêtes de 1, 2 ou 3 valeurs d'index de long (2 3, 4 3, 6 3)) incluent des points proches dans l'espace 3D latitude/longitude/temps .
L'option algorithm = Nearest prend également en charge une valeur nearby de 1, qui ne regarde que le point de données le plus proche dans le plan 2D.
Si une longitude, une latitude et un point de temps donnés sont en dehors de la plage d'un ensemble de données, la valeur de données résultante sera NaN.
Cependant, si l'ajout ou la soustraction de 360 à la valeur de longitude fait le point dans la plage de l'ensemble de données, les résultats auront la valeur de données correspondante.
AVERTISSEMENT :
si la valeur de longitude la plus proche est proche de la valeur de longitude minimale ou maximale, cette méthode ne trouve que les points proches à proximité de cette même valeur de longitude minimale ou maximale - elle ne boucle pas pour trouver les points proches.
Au lieu de cela, il duplique les points à la valeur de longitude minimale ou maximale, selon les besoins.
Ce n'est techniquement pas un comportement correct, mais cela n'affecte que certaines personnes, parfois.
Si cela vous affecte et n'est pas acceptable, voir
Pas ce que vous voulez ? au dessous de.
- Autres dimensions
Si un jeu de données spécifié a des dimensions autres que la latitude, la longitude et l'heure (par exemple, la profondeur), ce convertisseur demandera la valeur de dimension la plus proche de 0 pour chacune de ces autres dimensions.
Si ce n'est pas le comportement souhaité, voir
Pas ce que vous voulez ? au dessous de.
- Les méthodes d'interpolation utilisées ici sont tirées de Davis, JC 1986.
Statistics and Data Analysis in Geology, 2nd Ed.
John Wiley and Sons.
New York, New York.
- Valeurs de données manquantes
Si un jeu de données n'a pas de valeurs manquantes, un algorithm simple comme Bilinear donne de bons résultats de manière fiable.
Mais lorsque l'ensemble de données a des valeurs manquantes, le résultat peut être une valeur biaisée ou une valeur manquante.
Dans cette situation courante, vous préférerez peut-être choisir l' algorithm Scaled ou l'un des algorithm InverseDistance et un plus grand nombre de points nearby .
Ces algorithmes traitent mieux les valeurs manquantes et sont moins susceptibles de renvoyer une valeur manquante.
- Dans la table de réponse, les noms des nouvelles colonnes sont créés en prenant chaque partie du datasetID /variableName/algorithm/nearby CSV (par exemple, jplMURSST41/analysed_sst/Bilinear/4) et en remplaçant les / par des _ (par ex.
g, jplMURSST41_analysed_sst_Bilinear_4) afin qu'ils soient des noms de variables valides dans tous les types de fichiers de données
- Dans la table de réponse, à l'exception de algorithm = Nearest (qui renvoie le type de données d'origine), les valeurs interpolées sont renvoyées sous forme de doubles, et non le type de données d'origine.
Les valeurs manquantes sont renvoyées en tant que NaN, jamais une missing_value ne remplace.
- Grilles centrées ?
Les valeurs de latitude et de longitude pour les ensembles de données maillées peuvent identifier le centre de la cellule pertinente ou le coin inférieur gauche de la cellule.
La
norme FC dit "Si les limites ne sont pas fournies, une application peut raisonnablement supposer que les points de grille se trouvent au centre des cellules, mais nous n'exigeons pas cela dans cette norme." Ce convertisseur traite les valeurs de latitude et de longitude de l'ensemble de données comme des points afin qu'il puisse interpoler les valeurs qui se situent entre les points de latitude et de longitude de l'ensemble de données.
Ceci est plus cohérent avec l'hypothèse selon laquelle les valeurs de latitude et de longitude du jeu de données identifient le centre de la cellule.
Si ce n'est pas la bonne approche pour un jeu de données donné, dans certains cas, il peut être approprié de soustraire la moitié de l'espacement des cellules des valeurs de latitude et de longitude que vous fournissez à ce convertisseur.
- Pas ce que tu veux ?
Si les méthodes ou les options proposées par ce convertisseur ne conviennent pas à vos besoins ou ne correspondent pas à ce que vous voulez, ne les utilisez pas.
Au lieu de cela, vous pouvez le faire vous-même, à votre manière :
téléchargez des sous-ensembles de l'ensemble de données et appliquez votre propre algorithme.
Pour demander que d'autres algorithmes d'interpolation soient ajoutés à ce convertisseur, veuillez envoyer un courriel erd dot data at noaa dot gov .
- Administrateurs ERDDAP :
Vous pouvez modifier le Request CSV par défaut en ajoutant/éditant la balise <convertInterpolateRequestCSVExample> dans datasets.xml .
De même, vous pouvez modifier la liste des options datasetID / variable en ajoutant/éditant la balise <convertInterpolateDatasetIDVariableList> dans datasets.xml, qui peut avoir une liste séparée par des virgules de combinaisons datasetID / variable suggérées.
Le formulaire de cette page Web aide les humains à générer une URL de demande qui est envoyée à ERDDAP lorsque l'humain appuie sur le bouton Convertir.
Cependant, vous pouvez contourner ce formulaire en générant l'URL à la main ou dans un programme informatique ou un script, et en soumettant l'URL directement à ERDDAP .
- La table d'heure, latitude, longitude dans le formulaire devient le paramètre TimeLatLonTable dans la demande.
- Le CSV de la demande dans le formulaire devient le paramètre requestCSV dans la demande.
- Le type de fichier dans le formulaire devient le type de fichier de la demande.
Un exemple d'URL de requête est
https://coastwatch.pfeg.noaa.gov/erddap/convert/interpolate.htmlTable?TimeLatLonTable=
time%2Clatitude%2Clongitude%0A
2020-01-01T06%3A00%3A00Z%2C35.580%2C-122.550%0A
2020-01-01T12%3A00%3A00Z%2C35.576%2C-122.553%0A
2020-01-01T18%3A00%3A00Z%2C35.572%2C-122.568%0A
2020-01-02T00%3A00%3A00Z%2C35.569%2C-122.571%0A
&requestCSV=jplMURSST41%2Fanalysed_sst%2FBilinear%2F4
(qui comporte des sauts de ligne insérés pour faciliter la lecture, mais il ne s'agit en fait que d'une longue ligne.)
Longueur de l'URL - Notez qu'à mesure que la quantité de données dans TimeLatLonTable augmente, l'URL de la demande devient très longue.
Étant donné que Tomcat a une limite par défaut de 4096 caractères par URL de demande, ce convertisseur est limité à 100 lignes d'entrée -- 100 lignes est le maximum que vous pouvez demander de manière fiable à la fois.
Même avec cette limite, ce convertisseur est beaucoup plus efficace que de faire une demande distincte pour chaque valeur source Temps Latitude Longitude car les demandes en bloc ont 1/100e de la surcharge du réseau et obtiennent également les données de l'ensemble de données source beaucoup plus efficacement (souvent presque 100 fois plus efficacement).
Encodage en pourcentage - Les valeurs des paramètres TimeLatLonTable et requestCSV dans l'URL doivent être correctement
encodées en pourcentage :
tous les caractères autres que A-Za-z0-9_-!.~'()* doivent être codés en %HH, où HH est la valeur hexadécimale à 2 chiffres du caractère, par exemple, un espace devient %20.
Les caractères au-dessus de #127 doivent être convertis en octets UTF-8, puis chaque octet UTF-8 doit être codé en pourcentage (demandez de l'aide à un programmeur).
Il existe des
sites Web qui encodent et décodent en pourcentage pour vous .