#1 Fri 26 September 2014 09:50
- jfmoyen
- Participant occasionnel
- Date d'inscription: 2 Feb 2012
- Messages: 33
QGIS : Raster avec pixels dans le mauvais ordre
Bonjour,
J'essaie de charger dans QGIS des fichiers en provenance de
http://geodesy.curtin.edu.au/research/models/GGMplus/
Les fichiers sont assez bien décrits ici
http://ddfe.curtin.edu.au/gravitymodels … readme.dat
en particulier je sais que
" Each 5 deg
x 5 deg tile contains 2500 x 2500 grid points in centre-of-cell representation
(grid points are not situated on integer meridians and parallels). The grid
resolution is 0.002 deg (7.2 arc seconds) with the grid equally spaced in terms
of geodetic (GRS80) latitude and longitude."
"Depending on the functional, data is stored either in 2-byte signed integer big
-endian format (int16, ieee-be), or 4-byte signed integer big-endian format
(int32, ieee-be)" [dans mon cas, 4 octets = 32b]
et il n'y a qu'une bande.
Pour pouvoir charger le fichier, je l'ai renommé en .img (par exemple N45E000.ga.img) et j'ai crée un fichier "header" qui contient
# N45E000.ga.hdr
BYTEORDER M
LAYOUT BIL
NROWS 2500
NCOLS 2500
NBANDS 1
NBITS 32
ULXMAP 0.001
ULYMAP 50.001
XDIM 0.002
YDIM 0.002
nodata_value -2147483648
Ok, so far so good, qgis charge l'image (si vous esayez à la maison il faut changer énormément la colortable pour voir quelque chose, les données sont toutes entre 9800000 et 9810000 -- si vous voulez savoir, c'est l'accélaration de la gravité locale).
Le problème c'est que l'image est pivotée (ici, l'estuaire de la seine est en haut à droite au lieu de en haut à gauche, et le bord droit devrait être en haut). C'est parce que
" Records proceed along meridians from South to North and columns proceed from
West to East. The first record is the South-West corner (45.001 deg latitude,
0.001 deg longitude in the example), and the last record is the North-East
corner (49.999 deg latitude, 4.999 deg longitude). "
Alors que les spéc de esri pour ce genre de format veulent des données qui commencent en haut à gauche et qui sont lues par lignes, puis par rangées !
Concrètement il faut que je tourne mon image de 90° dans le sens des aiguilles d'une montre.
Comment puis-je faire ça ? Il me semble que un "world file" bien senti du genre
0.002
-5
-5
0.002
0
50
devrait faire l'affaire, mais comment forcer Qgis à lire le world file ? J'ai essayé de le nommer N45E000.ga.igw (puisque le fichier est un .img), mais sans grand succès...
Merci !
JF
Hors ligne