L'objet mapLayer
vous permet d'appliquer des transformations personnalisées par élément lors de la définition et de l'obtention de données dans la carte. Pour transformer les données que vous définissez ou obtenez à partir de la carte, spécifiez les descripteurs de fonction pour les propriétés GetTransfomFcn
et SetTransformFcn
. Cet exemple montre comment implémenter une couche de carte probabiliste de log-cotes en créant une lookup table pour les valeurs de probabilité et de log-cotes. Les fonctions de transformation utilisent ces lookup tables pour convertir entre ces valeurs lors de la définition ou de l'obtention de données.
Créer des tables de recherche
Générez une lookup table complète de valeurs qui mappent les valeurs de probabilité aux limites minimale et maximale des valeurs int16
.
Créez un tableau de valeurs int16
de intmin
à intmax
. Définir les limites de probabilité.
Les fonctions exampleHelperProbToLogodds
et examplerHelperLogoddsToProb
sont secrètes entre les log-cotes et les valeurs de probabilité. Utilisez les fonctions d'assistance pour obtenir les limites des log-cotes et générer le tableau pour rechercher les valeurs des log-odds. Créez une grille interpolée pour l'ensemble de la lookup table.
Spécifier les poignées de la fonction de transformation
Les poignées de fonction de transformation utilisent des exemples d'assistants qui définissent comment convertir entre les valeurs entières de log-cotes et les valeurs de probabilité avec une limite de saturation appliquée. Les limites de saturation de probabilité sont [0.001 .999]
comme spécifié précédemment. Ce comportement est similaire à l'objet occupancyMap
.
Créer une couche de carte
Générez un objet de couche de carte d'occupation à partir d'une matrice de valeurs de probabilité. Spécifiez les fonctions de transformation get et set.
Notez que lorsque vous créez la carte, la valeur par défaut est 0,001 au lieu de 0. Cette différence est due au fait que la fonction SetTransformFcn
a été appliquée à la valeur par défaut de 0 lors de la création de l'objet, ce qui sature la valeur à 0,001.
Obtenir et définir des données cartographiques
Les données cartographiques correspondent à la matrice que vous avez définie lors de la création.
extData = 10×10
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
Définissez des emplacements de carte spécifiques sur des valeurs :
Pour la première localisation, la probabilité est liée aux limites de saturation.
Le deuxième emplacement renvoie la valeur la plus proche de la valeur de probabilité dans la lookup table.
La couche de carte générée peut désormais être utilisée pour mettre à jour une carte d'occupation de probabilité stockée sous forme de valeurs int16
. Pour combiner cette carte avec d'autres couches ou types de cartes, consultez l'objet multiLayerMap
.