Suite

Échec de la création du fichier de signature


Je n'ai aucune idée de comment résoudre ce problème dans l'exercice que j'essaie d'effectuer.

Le point où je suis bloqué est 4. "Créer un fichier de signature en tant que LandsatCompS.sgs". J'ai fait ce qu'il dit dans l'exercice. J'ai reçu un message d'erreur "Impossible de créer le fichier de signature.

Le but de l'exercice est de réaliser une classification d'images supervisée de la moitié nord du Jutland.

  1. Démarrez ArcMap et ajoutez les images Landsat de la série B (images d'été).
  2. Créez une image composite image composite pour toutes les bandes sauf la bande 6 - la bande thermique. Enregistrez l'image sous LandsatCompS (S pour l'été).
  3. Ouvrez les orthophotos pour les terrains (non urbains). Ajoutez éventuellement plus d'orthophotos de la bibliothèque Geodata. Essayez d'identifier le nombre nécessaire de différentes classes d'occupation du sol pour couvrir toutes les zones sur les orthophotos. Pas plus de 15 !
  4. Ouvrez la fenêtre Classification des images et commencez à numériser les zones d'entraînement. Deux pour chaque classe. Créez le fichier de signature en tant que LandsatCompS.gsg.
  5. Effectuez une classification par maximum de vraisemblance en utilisant LandsatCompS comme raster d'entrée et LandsatCompS.gsg comme fichier de signature. La sortie est ML_class_NJ1. Utilisez les valeurs par défaut pour les autres entrées.
  6. Mettez les bonnes couleurs sur la nouvelle carte et comparez avec l'orthophoto et les autres cartes disponibles pour le Jutland du Nord.
  7. Où sont les problèmes ? Essayez de faire un classement amélioré en augmentant le nombre de classes et en numérisant de nouvelles zones d'entraînement. Effectuer le classement et évaluer le résultat. Lequel est le meilleur ?


J'ai eu un certain succès en changeant le répertoire cible dans lequel j'ai enregistré le fichier de signature. Plutôt que d'utiliser l'espace serveur qui m'avait été alloué, j'ai choisi le bureau local, et cela a fonctionné sans accroc. Pas certain de pourquoi.


En règle générale, si les données d'entraînement sont extraites de m bandes, puis >10 m des pixels de données d'apprentissage sont nécessaires pour chaque classe (Jensen, 2008). Cela permet un calcul correct des matrices de variance-covariance utilisées dans certains algorithmes de classification.

ArcGIS rencontre souvent des problèmes pour créer un fichier de signature avec trop de pixels. Votre nombre de pixels dépasse 200 000 dans certaines classes, ce qui est très important. La solution consiste à réduire le nombre de pixels dans votre gestionnaire d'échantillons d'entraînement en suivant les directives de pixels recommandées.

Référence

Jensen, J.R. (2005). Introduction au traitement numérique de l'image : une perspective de télédétection (n° Ed. 3). Prentice-Hall Inc…


Je viens d'avoir ce même problème et je suis tombé sur votre réponse, et je l'ai résolu d'une manière différente:

Assurez-vous que l'image que vous avez utilisée pour créer des échantillons (polygones) est sélectionnée dans la liste déroulante lorsque vous essayez de créer le fichier de signature.

Je vois pour vos photos que vous avez sélectionné LandSatCompS pour toutes les images, sauf celle avec l'erreur, où vous avez une image différente.

Dans mon cas, j'essayais de créer une signature, mais il n'y avait pas de pixels d'image à l'emplacement des exemples de polygones !


J'ai eu le même problème. Je note que les personnes précédentes ont changé de dossier et cela a fonctionné.

J'ai eu un nom du dossier avec un espace dedans. J'ai changé l'espace en un trait de soulignement et cela a fonctionné. Je pense que c'est la cause première.

Je n'utilise généralement jamais d'espaces dans les noms de dossiers et je suggérerais cette norme aux autres.

REMARQUE : la modification du nom du dossier peut affecter d'autres parties de votre carte si vous l'avez utilisé ailleurs. J'ai ensuite dû aussi fixer quelques calques avec définir la source de données.


Pour résoudre ce problème, j'ai supprimé les espaces et les caractères spéciaux du chemin lors de l'enregistrement du fichier et cela a fonctionné.


J'ai eu le même problème et j'ai pu le résoudre en :

  • Création du fichier de signature dans un autre répertoire comme d'autres l'ont suggéré.
  • Enregistrer les données d'entraînement sous forme de fichier de formes, redémarrer ArcMap et réessayer.

Une extension .gsg doit être utilisée pour le fichier de signature de sortie.

Les canaux raster en entrée et les données d'échantillon de raster ou d'entité en entrée doivent avoir des étendues qui se chevauchent. Les statistiques seront calculées pour la zone commune seulement.

Le nombre minimum valide d'échantillons de classe dans les données d'échantillon est de deux. Il n'y a pas de nombre maximum de cours.

Si le fichier de signature doit être utilisé dans d'autres outils d'analyse multivariée qui utilisent des matrices de covariance, telles que la classification de vraisemblance maximale et la probabilité de classe , les matrices de covariance doivent être présentes. Ces informations sont générées lorsque l'option Calculer les matrices de covariance dans la boîte de dialogue est activée ou que l'option COVARIANCE est spécifiée dans le script. Notez qu'il s'agit du paramètre par défaut. Voir Fonctionnement de la création de signatures pour comparer les fichiers de signatures lorsque les matrices de covariance sont générées par rapport aux moyennes uniquement.

Vous ne devez rien changer dans le fichier de signature, sauf pour entrer les noms des classes. Les statistiques du fichier doivent être créées et modifiées uniquement par des outils multivariés.

Les noms des classes dans le fichier de signature de sortie sont facultatifs. Ils sont utilisés à titre indicatif seulement. Les noms de classe peuvent être saisis via le champ Exemple ou n'importe quel éditeur de texte peut être utilisé sur le fichier de signature résultant pour saisir les noms. Chaque nom de classe doit être composé d'une seule chaîne ne dépassant pas 31 caractères alphanumériques.

Si l'entrée est une couche créée à partir d'un raster multicanal avec plus de trois canaux, l'opération prendra en compte tous les canaux associés au jeu de données source, et pas seulement les trois canaux chargés (symbolisés) par la couche.

Il existe plusieurs façons de spécifier un sous-ensemble de canaux d'un raster multicanal à utiliser comme entrée dans l'outil.

  • Si vous utilisez la boîte de dialogue de l'outil, accédez au raster multicanal à l'aide de la en regard de Canaux raster en entrée , ouvrez le raster et sélectionnez les canaux souhaités.
  • Si le raster multicanal est un calque de la table des matières , vous pouvez utiliser l'outil Créer un calque raster pour créer un nouveau calque multicanal contenant uniquement les canaux souhaités.
  • Vous pouvez également créer un nouveau jeu de données contenant uniquement les bandes souhaitées avec des bandes composites et utiliser le jeu de données résultant comme entrée de l'outil.
  • En Python, les bandes souhaitées peuvent être directement spécifiées dans le paramètre de l'outil sous forme de liste.

Voir Environnements d'analyse et Spatial Analyst pour plus de détails sur les environnements de géotraitement qui s'appliquent à cet outil.


Pourquoi est-ce que je reçois l'erreur git &ldquoremote : erreur : impossible de créer un fichier temporaire : aucun fichier ou répertoire de ce type&rdquo lors de la transmission ?

Mon post d'origine suit, mais voici la nouvelle chose que j'ai découverte :

et il m'a donné son erreur habituelle:

Donc, étant trop optimiste, j'ai pensé que l'option "--verbose" me donnerait des détails, alors j'ai immédiatement réessayé :

donc c'est juste totalement floconneux. Je commence à soupçonner que git n'aime tout simplement pas LDAP.

Message d'origine :

Nous passons de cvs à git, et j'ai une configuration de test où j'ai un serveur git qui authentifie les utilisateurs avec LDAP, appelons-le REMOTE, puis ma machine personnelle, appelons-la LOCAL. Les deux machines sont des Mac. Tous les employés de l'entreprise (moi y compris) sont membres d'un groupe que j'appellerai intelligemment GROUPE.

J'ai ssh pour REMOTE en tant que moi et j'ai créé un référentiel git dans un dossier nommé /git/PROJECT.git à l'aide de cvs2git.

ce qui était bien. Sur mon Mac ("LOCAL"), j'ai ensuite édité quelques fichiers, supprimé quelques-uns et fait

Puis (toujours sur LOCAL) j'ai exécuté :

pour repousser mes modifications de LOCAL à REMOTE et j'ai obtenu ceci :

J'ai fait des recherches sur ce problème et il semblait que $ TMPDIR était faux, alors j'ai ssh'ed sur REMOTE, j'ai créé un répertoire nommé /git/tmp, je me suis assuré qu'il disposait des autorisations d'écriture, j'ai édité mon .bashrc et j'ai défini $ TMPDIR vers /git/tmp.

De retour sur LOCAL, si j'exécute

je vois bien la réponse

Si je ssh vers REMOTE et que je vérifie les autorisations de fichier, voici ce que je vois :

tous les fichiers sont rw pour le propriétaire (moi) et le groupe

Qu'est-ce qui pourrait être à l'origine de cette erreur ?

p.s. Comme c'est la norme sur les Mac, si j'exécute :

Je vois des liens symboliques : tmp -> /private/tmp, var -> /private/var, et etc -> /private/etc. J'ai ajusté les autorisations et la propriété afin qu'elles soient maintenant définies sur :


Problèmes de synchronisation de l'heure Ubuntu 20.04 et informations d'état éventuellement incorrectes

J'ai eu quelques problèmes avec des plantages sur mon hôte KVM (Lubuntu 20.04), et lors du dépannage, j'ai remarqué des erreurs liées au temps.

Après une enquête plus approfondie, à ma grande horreur, j'ai vu que l'heure n'était pas synchronisée. Je suis sûr qu'il a été configuré avant, je n'ai aucune idée de comment il a été désinstallé.

J'ai pensé que j'avais peut-être besoin d'utiliser des instructions plus à jour, alors j'ai essayé ceci : https://linuxconfig.org/how-to-sync-time-on-ubuntu-20-04-focal-fossa-linux

Ensuite, j'ai essayé ceci, à partir d'un autre fil:

Je n'ai jamais touché timesyncd.conf, mais il est tout de même entièrement commenté :

J'ai vérifié à nouveau timedatectl, et maintenant il est activé, mais n'utilise toujours pas NTP. Je comprends que NTP est plus précis, et cela peut être important dans certaines situations. Je ne sais pas si la virtualisation avec passthrough pci nécessite un temps extrêmement précis ou non.

D'après d'autres choses que je lisais, je pensais que NTP était peut-être en conflit avec timesyncd. Supprimez donc ntp pour le moment :

Mais après avoir purgé ntp, NTP s'est montré actif !

Suis-je en train de devenir fou ? NTP est-il toujours là d'une manière ou d'une autre ? Nan.

Excusez-moi de ne pas avoir posé une question plus ciblée, mais que diable se passe-t-il ici ?

Je suis bel et bien perdu. De plus, j'éditerai ce post plus tard et je me demanderai si la suppression de NTP (et donc son activation ?!) a résolu les problèmes de stabilité qui m'ont conduit dans ce terrier de lapin.

J'ai annulé ces changements comme recommandé par Michael Hampton : cela signifie-t-il que cela fonctionne ?

Donc je suppose que ça marche. Étant donné que les accidents qui m'ont conduit dans cette voie se produisent toujours, je suppose que le temps n'était pas le problème.


La réponse de Marek est correcte et corrige l'erreur, mais il convient de garder à l'esprit que dans la situation affichée, vous disposez d'une option plus simple :

Le paramètre -WithParent inclura automatiquement l'élément racine pour vous.

Votre code fonctionne correctement lorsque plusieurs éléments sont renvoyés par la commande Get-ChildItem.

Si un seul élément est renvoyé, SPE renvoie un objet d'élément unique au lieu d'un tableau.

Vous pouvez contourner le problème en enveloppant les variables $root et $items avec @(. ) comme :


GetDPLocations a échoué avec l'erreur 0x80004005

Mon serveur VM SCCM Windows 2012 R2 ne peut pas obtenir de client sccm sur ma VM Windows 7.

J'ai essayé le client-push et CCMSetup.exe est en cours d'exécution, mais s'arrête finalement.

Le ccmsetup.log me donne GetDPLocations a échoué avec l'erreur 0x80004005:

Mon site SCCM est publié sur mon domaine. J'ai défini le domainadmin comme compte pour les installations push client. J'ai exécuté Extadsch.exe en tant qu'administrateur. J'ai un conteneur de gestion de système avec une autorisation complète déléguée à mon serveur sccm. J'ai autorisé les ports entrants et sortants sur le pare-feu avec une stratégie de groupe :

  • TCP 80 443 445 10123 135 2701 8530 143 4022
  • UDP 9 25536 67 68 135
  • Partage de fichiers et d'imprimantes,
  • WMI

La fonction de compression différentielle à distance est installée.

J'ai installé la fonctionnalité BITS. J'ai également remarqué que les utilisateurs n'étaient pas trouvés dans sccm. Je ne sais pas si c'était un problème, mais j'ai activé la découverte d'utilisateurs et de groupes AD.

Le ccmsetup.log est différent maintenant :

CCMSetup.exe ne semble pas s'arrêter maintenant.

J'ai réinstallé le rôle de point de gestion à partir du serveur sccm, mais cela n'a pas fonctionné non plus.

Lorsque j'ai copié les fichiers d'installation du client à partir de Win-52bo8j9011msms_rspClient(le serveur sccm) et j'ai essayé d'installer le client sccm, il n'a installé que Microsoft Silverlight et rien n'a changé dans le gestionnaire de configuration du panneau de configuration :

Dans sccm, le client installé est toujours sur non pour la machine virtuelle Windows 7.

Une partie du fichier journal client.msi :

J'ai donc installé .NET Framework et exécuté à nouveau CCMSetup.exe sur la machine virtuelle Windows 7.

Encore une fois la même erreur dans ccmsetup.log :

Je pensais qu'il me manquait un fichier DLL dans mon dossier Windows appelé IComboObject.dll (https://www.youtube.com/watch?v=eIgqpQbTcb8).

J'ai téléchargé le fichier DLL et exécuté une commande dans mon dossier system32 :

J'ai eu une erreur selon laquelle le fichier n'a pas pu être trouvé, alors j'ai cherché encore plus et j'ai trouvé cette vidéo. J'ai entré cette commande dans mon dossier system32 :

Après cela, l'erreur a disparu de mon fichier client.msi et ccmsetup.log.

Je n'ai toujours pas de client sccm fonctionnel. Je vois qu'aucun client n'est installé sur mon Windows 7 dans mon serveur sccm.


7 réponses 7

Je vois deux choses qui ne vont pas ici. Oracle essaie d'ouvrir un fichier de paramètres dans le répertoire $ORACLE_HOME/dbs au format "spfile" + $ORACLE_SID + ".ora". S'il ne le trouve pas, il essaie alors d'ouvrir "init" + $ORACLE_SID + ".ora". C'est là que sont le(s) problème(s).

Du fait qu'Oracle essaie d'ouvrir un fichier de paramètres nommé "initXE.ora", votre SID doit être (ou était à un moment donné) égal à "XE".

1) C'est la partie facile, alors essayez d'abord. Puisque (dans vos commentaires) faire un écho $ORACLE_SID ne donne rien, essayez de le définir.


2 réponses 2

Cette réponse dépend du fait que vous utilisez Bitcoin Core 0.13.1 et que vous avez téléchargé bitcoin-0.13.1-win64.zip , cette réponse fonctionnera également avec toute autre version de bitcoin ou téléchargera uniquement avec la clé publique du signataire, le fichier de somme de contrôle et le bitcoin télécharger le nom.

Vous devez d'abord importer la clé publique du signataire, dans ce cas la clé avec l'ID : 0x90C8019E36C2E964 , vous le faites par l'argument de ligne de commande --recv-keys.

Ensuite, vous devez télécharger le fichier de signature à partir d'elle : https://bitcoin.org/bin/bitcoin-core-0.13.1/SHA256SUMS.asc, et le stocker dans le même dossier où le téléchargement de bitcoin core est stocké. Ensuite, vous devez vérifier que la somme de contrôle SHA256 est valide.

Ne vous souciez pas de FAILED open or read ou No such file or directory messages, vous recherchez quelque chose comme ceci:

Si la somme de contrôle est valide, alors vous validez que la signature est bonne (en vérifiant que le fichier des sommes de contrôle n'est pas falsifié). Ceci est fait par :

Cela devrait afficher quelque chose comme ceci :

ÉDITER: Si vous obtenez le message suivant :

Vous avez des problèmes de confiance, en d'autres termes, la clé publique de Wladimir J. van der Laan n'est pas marquée comme clé de confiance dans gpg. Vous pouvez le marquer avec quelques étapes faciles.


6 réponses 6

Si vous stockez vos certificats CA sur le système de fichiers (au format PEM), vous pouvez dire à curl de les utiliser avec

Vous pouvez également désactiver la vérification du certificat avec

Edit : mis à jour en ce qui concerne les commentaires

Si vous souhaitez définir cela de manière permanente, vous devez créer un fichier .curlrc et le placer dans votre répertoire personnel. Les commandes sudo peuvent avoir besoin de ce fichier dans /var/root Le fichier prend les mêmes options que la ligne de commande mais sans les tirets. Une option par ligne :

La racine ne lit pas les paramètres de confiance de l'utilisateur actuels, mais il existe à la fois des paramètres de confiance d'administrateur et des paramètres de confiance spécifiques à l'utilisateur root. (Ceux-ci sont également distincts des système paramètres de confiance.) Notez également que les paramètres de confiance de certificat sont quelque peu différents de l'ajout d'un certificat à un trousseau, vous pouvez marquer un certificat comme étant de confiance sans l'ajouter complètement. (La situation exacte ici n'est pas claire pour moi, et les documents que j'ai vus sont vagues.)

Vous pouvez marquer un certificat comme étant de confiance pour votre utilisateur actuel en tant que

mais cela n'aide pas avec root. La solution, comme vous pouvez le deviner maintenant, consiste soit à sudo ce qui précède, qui le marque ensuite comme étant de confiance pour l'utilisateur root en particulier :


Échec de la création du fichier de signature - Systèmes d'information géographique

Segmentation hyperspectrale en "cube" utilisant la signature spectrale de l'objet

Jacek Ciuba 152082 3 juin 2020

Si vous souhaitez contribuer à ce projet, n'hésitez pas à poster des PR.

Si cet article vous a aidé, merci

Le mot "hyper" signifie excessif en taille, en qualité ou "au-dessus, au-dessus". Les informations redondantes résultent d'une très haute résolution spectrale (plages d'enregistrement étroites pour des canaux individuels) et d'un grand nombre de canaux par rapport aux données multispectrales, ainsi que d'une très large gamme d'ondes de rayonnement électromagnétique pour lesquelles une image donnée est enregistrée. La plupart des capteurs appelés hyperspectraux ont plus de 40 canaux avec une résolution spectrale de <20 nm.

Les systèmes hyperspectraux enregistrent le rayonnement réfléchi par la surface de la Terre dans des dizaines voire des centaines de canaux continus étroits, ce qui permet de caractériser différents types d'occupation du sol plus en détail qu'en utilisant les données obtenues par des capteurs multispectraux (Fig. 1).

La quantité d'informations spectrales enregistrées par les spectromètres hyperspectraux dépasse souvent la plage requise pour identifier plusieurs objets. La plupart des capteurs aéroportés hyperspectraux, par ex. Hyperion, enregistre le rayonnement électromagnétique pour les gammes visible et infrarouge moyen (VIS) (NIR et SWIR). Certains d'entre eux (par exemple DAIS) ont un capteur supplémentaire qui permet d'enregistrer également dans la plage thermique (8000 - 12600 nm) ou ils enregistrent le rayonnement uniquement dans cette plage.

Les capteurs hyperspectraux fournissent des informations spectrales complètes sur l'objet testé et mettent en évidence des caractéristiques qu'il était auparavant impossible d'obtenir. La plupart des objets à la surface de la Terre se caractérisent par la présence de caractéristiques spécifiques sur une courbe représentant les valeurs du rayonnement électromagnétique réfléchi par eux. La plupart de ces caractéristiques ne peuvent être capturées que dans des parties très étroites du spectre qui enregistrent les capteurs hyperspectraux en tant que plages spectrales distinctes. Cette propriété des images hyperspectrales fait que leur utilisation pour isoler diverses formations végétales augmente considérablement la précision de la classification par rapport aux données multispectrales.

Application d'images hyperspectrales

Géographie, géologie, cartographie et domaines connexes

L'imagerie multispectrale est utilisée dans les systèmes de collecte d'informations géographiques, en particulier dans les systèmes d'information sur le terrain. Les données multispectrales permettent d'obtenir des informations beaucoup plus complètes sur la zone que la photographie satellite traditionnelle. Sur la base de l'analyse de la lumière réfléchie par diverses parties du terrain, des conclusions peuvent être tirées sur le type de roches, la composition et l'humidité du sol, ainsi que le type de végétation habitant la zone (y compris la végétation océanique).

Les images multispectrales satellitaires sont particulièrement importantes pour la météorologie - elles permettent d'étudier la distribution de la concentration de vapeur d'eau, ainsi que la distribution des températures du sol, de l'eau et de la masse d'air. L'ancêtre des techniques multispectrales en météorologie étaient les photographies infrarouges monocanal.

Écologie, foresterie, agriculture

Les images multisectorielles et hyperspectrales sont utiles pour étudier la répartition des populations végétales, en particulier la flore océanique et les peuplements forestiers en zone forestière. Une analyse approfondie de la lumière réfléchie par les plantes permet de détecter la présence de certaines espèces d'arbres, et indique également leur "santé" globale.

Surveillance, sauvetage, recherche d'objets

Grâce à l'imagerie multispectrale, il est possible d'identifier des objets partiellement cachés qui seraient invisibles dans l'image des caméras couleur traditionnelles ou lors d'une observation directe.

En technique médico-légale, l'imagerie multispectrale est un outil pour accélérer le travail d'investigation. Les photographies médico-légales multispectrales de scènes de crime et de preuves permettent la détection rapide de microtraces de substances organiques ou chimiques spécifiques.

Dans l'étude des œuvres d'art historiques, y compris les peintures, les livres, l'imagerie multispectrale est un outil irremplaçable pour l'étude non invasive de l'authenticité et du contenu caché de l'œuvre.

Segmentation hyperspectrale en "cube" par des méthodes hyperspectrales

Dans la littérature, de nombreux scientifiques présentent des résultats de recherche obtenus sur la base d'une modélisation physique et mathématique, qui extrait de manière optimale des informations à partir de données hyperspectrales. Le but de l'analyse de données est d'extraire des informations contenues dans des données hyperspectrales, pour lesquelles la portée et les possibilités d'analyse d'images ont été considérablement élargies en raison de l'augmentation de la résolution spectrale. Les méthodes d'analyse des données hyperspectrales peuvent être divisées en raison de la méthode d'extraction des informations contenues dans les pixels de l'image. Aspinall les divise en méthodes de pixel et en méthodes de sous-pixel. Le premier groupe est constitué des procédures qui classent un pixel en identifiant le composant principal d'un pixel donné. Ceux-ci incluent Spectral Angle Mapper (SAM), Binary Encoding (BE), Spectral Feature Fitting (SFF), Continuum Removed (CR). En revanche, le deuxième groupe d'Aspinall comprend des algorithmes de sous-pixels qui permettent d'estimer la composition du matériau au sein d'un pixel donné, notamment le démixage spectral linéaire (LSU), le filtrage adapté (MF), le filtrage adapté par mélange (MTMF). Une division similaire a été faite par Plaza en appelant ces deux groupes de procédures techniques de pixels entiers et de pixels mixtes. Plaza souligne également que l'image doit être analysée à l'aide de toutes les méthodes et algorithmes disponibles, car dans une scène donnée, il existe des zones où la réponse spectrale peut provenir d'un groupe de pixels spectralement purs ou de pixels très mélangés.

Méthodes de pixels pour classer les données hyperspectrales

Mappeur d'angle spectral (SAM)

Spectral Angle Mapper (SAM) est une méthode de comparaison automatique des courbes spectrales obtenues à partir de l'image avec les courbes de la bibliothèque spectrale créées sur la base de mesures de terrain ou de laboratoire. Comme courbes de référence, des courbes spectrales obtenues à partir d'images (appelées endmembers) ou des courbes spectrales de bibliothèques de réponses spectrales disponibles auprès de diverses sources externes (par exemple, bibliothèque des laboratoires USGS, JPL) peuvent être utilisées. Les valeurs de réponse spectrale pour un pixel dans n canaux peuvent être traitées comme des coordonnées vectorielles dans un espace n dimensionnel. La réponse spectrale du motif peut également être représentée comme un vecteur. L'algorithme de la méthode SAM est basé sur une comparaison de vecteurs spectraux pour chaque pixel de l'image analysée avec des vecteurs spectraux pour des objets de référence.

L'angle entre ces vecteurs est calculé selon la formule suivante :

( alpha ) = angle spectral entre le standard et la courbe spectrale du pixel

nb = nombre de canaux spectraux

t = vecteur de réponse spectrale de la norme

r = le vecteur de réponse spectrale du pixel analysé

Dans cet algorithme, l'angle obtenu est évalué, pas la longueur du vecteur.

Les avantages de cet algorithme sont :

Mise en œuvre simple et rapide

Compréhensible par l'utilisateur

Relativement résistant aux différences d'éclairage (topographie, source lumineuse, capteur, etc.)

Comparabilité des spectres d'images avec les spectres de laboratoire

Les inconvénients de cet algorithme sont :

La tolérance à l'éclairage s'accompagne d'une insensibilité à la détection de certains changements physiologiques

Des spectres similaires qui ne diffèrent significativement que par l'albédo (par exemple, les forêts de conifères et de feuillus) sont mal classés

Implémentation propre de l'algorithme SAM

Pour mettre en œuvre l'algorithme, le [code] trouvé sur Internet (https://github.com/aditis1204/spectral-angle-mapper) a été utilisé, qui a servi de base au projet. Il a été complètement modifié car l'auteur du programme a mal implémenté l'algorithme. Après une longue analyse, le code a été révisé pour répondre aux exigences du projet.

Le langage de programmation sélectionné est Python avec les bibliothèques suivantes :

rasterio - une bibliothèque qui vous permet d'importer un cube hyperspectral au format .tif dans le programme

numpy - une bibliothèque qui permet un fonctionnement plus rapide sur les tableaux

tkinter - une bibliothèque qui vous permet de créer une interface pour communiquer avec l'utilisateur

Présentation de l'interface graphique

Après avoir exécuté le fichier programme dans un environnement correctement configuré, l'utilisateur reçoit une fenêtre de communication avec le programme, permettant de sélectionner un cube hyperspectral au format .tif et d'afficher l'image Composite couleur vraie et Composite de fausses couleurs.

Après avoir sélectionné le fichier de cube hyperspectral et cliqué sur le Afficher TCC et FCC bouton, les deux images susmentionnées seront affichées.

L'image semble trop sombre car une normalisation linéaire a été utilisée et la normalisation doit être appliquée selon la formule suivante :

où ( alpha ) spécifie la largeur de la plage d'intensité d'entrée et ( beta ) spécifie l'intensité autour de laquelle la plage est centrée.

Cependant, la mise en œuvre de cet algorithme de normalisation a été ignorée, car ce n'était pas le problème principal de ce projet et à partir des photos présentées, vous pouvez facilement choisir les pixels représentatifs pour les classes que nous voulons mettre en évidence à partir de l'image FCC présentée.

Afin de sélectionner les signatures spectrales des classes qui nous intéressent, double-cliquez sur le bouton gauche de la souris sur le pixel sélectionné.

Après avoir choisi les pixels d'intérêt, vous devez fermer toutes les fenêtres du programme et attendre qu'il vérifie tous les pixels dans toutes les couches du cube hyperspectral. Le temps d'attente des résultats augmente avec le nombre de pixels représentatifs préalablement sélectionnés. Au bout d'un moment on obtient l'image suivante :

Les pixels marqués en rouge, vert et bleu représentent les signatures précédemment sélectionnées. Le reste des pixels noirs n'a été affecté à aucune classe.

Enfin, un résumé du fonctionnement du programme s'affiche, montrant un résumé des 3 images :

La partie la plus importante du programme commence à partir de la ligne 125. Les valeurs d'angle pour chaque pixel dans le cube hyperspectral sont calculées selon la formule SAM donnée précédemment.

Il est à noter ici que l'angle (p _cos [j] ) est calculé en radians. Par conséquent, la constante (0.1 ) détermine à quel niveau un pixel donné est classé dans la signature préalablement définie par l'utilisateur.

biehl/MultiSpec/hyperspectral.html. Le cube contient 191 canaux spectraux pour la zone du Washington DC Mall.

La tâche du projet était de proposer et tester une méthode de segmentation du "cube" hyperspectral téléchargé sur Internet en utilisant la signature spectrale de l'objet que l'on veut extraire.

Je considère que la tâche est terminée, mais en travaillant sur ce projet, j'ai rencontré de nombreux problèmes avant qu'il ne soit terminé. Les difficultés consistaient à trouver des supports pédagogiques adaptés au sujet, qui sont très peu nombreux sur Internet. Le seul référentiel que j'ai pu trouver parmi les méthodes utilisant les signatures spectrales de l'objet a été utilisé pour créer mon implémentation de l'algorithme (Spectral Angle Mapper ). En attendant, j'ai vérifié les méthodes (ISODATA ) et (K-means ). Le cube spectral utilisé n'a pas été préalablement préparé pour le test, ce qui est l'action recommandée, mais en raison du temps limité et des ressources disponibles, seul l'algorithme (SAM) a été implémenté. Malheureusement, je ne peux pas me référer à d'autres logiciels de segmentation de cube hyperspectral car je ne l'ai pas trouvé. Cependant, en comparant les résultats de classification obtenus au cube Ground Truth, je suis en mesure de dire que l'algorithme a été implémenté correctement et j'ai compris le principe de son fonctionnement.

Grâce à la mise en place de ce projet, j'ai été initié aux problématiques liées à l'analyse d'images hyperspectrales, ce qui peut certainement être utile lors de travaux professionnels.

Claudia Kunzer Principes physiques et méthodes de télédétection https://earth.esa.int/documents/973910/1002056/CK2.pdf/861e7d6e-dbcf-4209-a29a-e283cc0e67d6 Universitat Wurzburg, dostęp z 3 czerwca 2020.

Ewa Głowienka - Mikrut Analiza porównawcza metod przetwarzania danych hiperspektralnych o zróżnicowanej rozdzielczości. http://home.agh.edu.pl/

Bogdan Zagajewski, Magdalenia Wrzesień, Marcin Sobczak, Małgorzata Krówczyńska Cyfrowe przetwarzanie zdjęć hiperspektralnych. http://geoinformatics.uw.edu.pl/wp-content/uploads/sites/26/2014/03/TS_v36_078_Zagajewski_5.5M.pdf Teledetekcja Środowiska 36, ​​Warszawa 2005.

Piotr Wężyk Teledetekcja satelitarna w rolnictwie - wprowadzenie Uniwersytet Rolniczy, Cracovie 2014.