Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 05 January 2010 13:17

Drissou
Juste Inscrit !
Date d'inscription: 5 Jan 2010
Messages: 3

IDL resize par ROI

Bonjour et heureuse année à tous,

Je me permets de vous écrire car j'ai un soucis, j'ai une centaine d'images MODIS à traiter et après conversion pour être utilisée sous ENVI, je souhaiterais utiliser IDL pour redécouper automatiquement ces images par mon ROI, en effet ma zone d'étude est toute petite par rapport à la taille de l'image.
J'ai cherché sur le net mais je n'ai rien trouvé à base de ROi déjà existant.
Donc j'espère que quelqu'un pourra m'aider.

Je vous poste un code déjà trouvé

pro SUBSET_by_EVF
envi, /restore_base_save_files
envi_batch_init,log_file='batch.txt'

; define the image to be opened
img_file='C:\BureauEtudes\ImagesGeoTiff\MOD09GQ.A2008001.h18v05.005.2008003141227_Grid_2D_reprojected.tif'
envi_open_file,img_file,r_fid=fid
print, 'fid=',fid

; query the file and define the output file variables
envi_file_query,fid,dims=dims,ns=ns,nl=nl,nb=nb
t_fid=lonarr(nb)+fid
pos=lindgen(nb)
out_name='subset.img'

;open the EVF file
evf_fname='C:\BureauEtudes\ZI_Chott.evf'
evf_id=envi_evf_open(evf_fname)

;get the vector information
envi_evf_info, evf_id, num_recs=num_recs, data_type=data_type, projection=projection,$
layer_name=layer_name

; print information about each record
print, 'Number of records:',num_recs
for i=0,num_recs-1 do begin
record=envi_evf_read_record(evf_id,i)
print, 'Number of nodes in Record '+strtrim(i+1,2)+':',n_elements(record[0,*])
print, 'Record Info:'
print, record
endfor

; Get record info (assuming one record in EVF)
record=envi_evf_read_record(evf_id,0)
xMap=record[0,*]
yMap=record[1,*]

;Convert record to xy pixel coordinates of the image to be subsetted
envi_convert_file_coordinates, fid, xf, yf, xMap, yMap

;Prepare the subset dimensions
dims[0]=-1L
dims[1]=min(xf)-1
dims[2]=max(xf)-1
dims[3]=min(yf)-1
dims[4]=max(yf)-1

;Use copyfile_doit to copy input file with new dimensions
envi_doit,'cf_doit', fid=t_fid, pos=pos, dims=dims, remove=0, out_name=out_name, r_fid=r_fid

; Exit Envi
envi_batch_exit
end

j'ai une erreur dès le début, car il me dit qu'il ne peut pas lire ce type de fichier...

Merci pour toute l'aide que vous pourrez m'apporter.


EDIT :
J'ai trouvé l'erreur, il suffit de remplacer l'extension par .img

Maintenant je voudrais rajouter une boucle sur mon programme pour traiter mes données...

Dernière modification par Drissou (Tue 05 January 2010 13:25)

Hors ligne

 

#2 Fri 14 March 2014 12:23

heydt
Juste Inscrit !
Date d'inscription: 27 Oct 2009
Messages: 1

Re: IDL resize par ROI

Bonjour

Est ce qu'une solution a été trouvée car j'ai exactement le même problème ?
merci

Hors ligne

 

Pied de page des forums

Powered by FluxBB