#1 Wed 03 October 2007 16:47
- slhomme
- Participant actif
- Date d'inscription: 5 May 2006
- Messages: 88
image raster à partir de .xyz
Bonjour,
Je coince un peu sur une question technique… Je cherche à transformer un fichier .xyz en image raster . Le .xyz et un fichier texte 3 colonnes avec col1. coordX ; col2. coordY ; col3. coordZ
J’ai essayé d’utiliser la fonction « ENVI_GRID_DOIT » sur envi/idl . Le problème est que sur l’exemple on propose d’écrire les données dans un tableau sous la forme :
x_pts = [0, 500, 500, 0, 250]
y_pts = [0, 0, 500, 500, 250]
z_pts = [0, 100, 200, 300, 1000]
Dans mon cas j’ai plus de 10 000 lignes…
Existe t’il une solution pour remplacer ce tableau en « attachant» un txt ? Ou existe-t-il une autre solution tout court pour passer du .xyz au raster sous envi ?
Merci de votre aide
Hors ligne
#2 Fri 12 October 2007 16:03
- Emilie_ENVI
- Participant actif
- Date d'inscription: 6 Jun 2006
- Messages: 83
Re: image raster à partir de .xyz
Bonjour,
Peux-tu me donner un peu plus de détail sur la maniere dont sont ordonnées tes valeurs x, y, z ?
Dernierement, j'ai realisé le meme travail ou les trios de valeurs s'organisait de la maniere suivante :
les premieres lignes du fichier correspondent aux valeurs de la premiere ligne de l'image (x varie et y constant)
puis un second bloc de ligne correspond au valeur sur la deuxieme ligne (x varie et y constant)
etc...
Est-ce la meme chose pour toi ?
Si oui, j'ai écrit un petit code tout simple en IDL qui permet donc de lire ce type fichier et l'afficher comme image. Je le mets en PJ de ma reponse.
Si ce n'est pas le cas, il suffit de lire le fichier TXT et de l'ordonner afin d'utiliser ensuite le programme. Je peux t'aider a faire cette etape si tu le souhaites, hesites pas a me contacter.
A bientot ... :-)
Emilie
PS : desolee de repondre si tardivement... le temps passe trop vite ! :-)
Dernière modification par Emilie_ENVI (Fri 12 October 2007 16:06)
Hors ligne
#3 Fri 19 October 2007 17:19
- slhomme
- Participant actif
- Date d'inscription: 5 May 2006
- Messages: 88
Re: image raster à partir de .xyz
Bonjour,
Merci Emilie pour ton aide. Je suis arrivé à intégrer les colonnes du XYZ dans e"nvi_grid_doit" grace à :
Code:
result = READ_ASCII('C:\Fichier.txt, TEMPLATE=ASCII_TEMPLATE('C:\Fichier.txt)) result1 = result.field1 result2 = result.field2 result3 = result.field3 ensuite pour envi_grid_doit on utilise x_pts = [result1] y_pts = [result2] z_pts = [result3]
Depuis j'ai "découvert" une fonction sur Envi qui fait la même chose directement => Topographic => Rasterize pt data
Pourquoi faire simple ....
Au moins ca servira peut être un jour à quelqu'un !
Hors ligne
#4 Mon 22 October 2007 12:10
- Emilie_ENVI
- Participant actif
- Date d'inscription: 6 Jun 2006
- Messages: 83
Re: image raster à partir de .xyz
Bonjour,
En effet cette fonction existe bien MAIS cette fonction réalise une interpolation (triangulation Delaunay) afin de placer les points sur une grille régulière.
Donc si tes points sont réguliers, cette fonction me semble peu adaptée car elle interpole. C'est donc mieux de passer par IDL (lecture du fichier ASCII et création de la grille-image)
Par contre, si tes points sont irréguliers, en effet la fonction d'ENVI est intéressante à utiliser. A savoir qu'il existe dans IDL bien plus de fonction d'interpolation (bilinéaire, linéaire, cubique, ... cf chapitre "Gridding and Interpolation" de l'aide en ligne d'IDL).
Emilie
Hors ligne
#5 Mon 22 October 2007 12:48
- slhomme
- Participant actif
- Date d'inscription: 5 May 2006
- Messages: 88
Re: image raster à partir de .xyz
Mes points étaient irréguliers, c'est bien d'interpolation que j'avais besoin mais c'était pas clair du tout dans mon message. Désolé.
En tous cas merci de ton aide, ca m'a permis de finaliser mon code et en plus on a répondu à deux questions en une discussion !
Hors ligne