#1 Fri 10 July 2009 17:18
- Bleuenn
- Juste Inscrit !
- Date d'inscription: 28 Jul 2008
- Messages: 2
Rotation d'une image par mapserver
Bonjour,
j'ai une image que je positionne sur ma carto. Je lui fais subir deux types de transformation : une rotation et un redimensionnement. Je souhaite ensuite géoréférencer mon image en construisant mon fichier de calage et en appelant gdaltindex pour que mapserver l'affiche.
Je n'arrive pas à comprendre les paramètres du fichier de calage (2ème ligne et 3ème ligne) pour exprimer une simple rotation dans un plan 2D.
Pouvez vous m'aider?
Exemple d'un fichier tfw
0.434984984985
0
0
-0.434984984985
242877.3713713718
266820.8084507042
Quelles sont les valeurs à mettre pour lui dire d'exécuter une rotation de 90°?
Merci par avance
Bleuenn
Hors ligne
#2 Fri 10 July 2009 17:41
- tbonfort
- Participant actif
- Date d'inscription: 11 Oct 2007
- Messages: 87
Re: Rotation d'une image par mapserver
d'apres http://www.omg.unb.ca/~jonnyb/processin … rmat.html, j'essayerais:
0
-0.434984984985
-0.434984984985
0
242877.3713713718
266820.8084507042
en changeant -0.434984984985 en 0.434984984985 selon la direction de rotation.
tiens moi au courant de tes resultats stp, j'ai jamais essayé moi meme.
--
thomas
Bonjour,
j'ai une image que je positionne sur ma carto. Je lui fais subir deux types de transformation : une rotation et un redimensionnement. Je souhaite ensuite géoréférencer mon image en construisant mon fichier de calage et en appelant gdaltindex pour que mapserver l'affiche.
Je n'arrive pas à comprendre les paramètres du fichier de calage (2ème ligne et 3ème ligne) pour exprimer une simple rotation dans un plan 2D.
Pouvez vous m'aider?
Exemple d'un fichier tfw
0.434984984985
0
0
-0.434984984985
242877.3713713718
266820.8084507042
Quelles sont les valeurs à mettre pour lui dire d'exécuter une rotation de 90°?
Merci par avance
Bleuenn
Hors ligne
#3 Fri 10 July 2009 18:11
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Rotation d'une image par mapserver
Bonjour,
Les 4 premiers paramètres sont les paramètre XX, XY, YX, YY de la formule
X=XT + XX . xp + XY . yp
Y=YT + YX . xp + YY . yp
Mais attention l'ordre des paramètres n'est pas exactement celui là et je n'ai pas retrouvé mon document
Chacun de ces paramètre est comparable au produit d'un sin (rsp cos) et du rapport d'agrandissement.
Les paramètres que vous avez indiquent une homothétie-rotation
l'angle de rotation est 0, donc, le facteur comprenant sin est nul.
Puisque vous ne voulez qu'une rotation avec le même rapport d'échelle, il faut trouver les paramètres de la formule
X=XT + A . xp + B . yp
Y=YT + B . xp - A . yp
Attention l'un de 4 signes doit être négatif
où A sin(ang) . R et B = cos(ang) . R
où R est le rapport d'agrandissement, 0.438985... dans votre cas.
Ca parait compliqué, mais c'est très simple.
Il est bien évident que la superposition sera bien meilleure si XX et YY sont différents, ainsi que XY et YX, mais là c'est plus compliqué à calculer.
Cordialement.
Hors ligne
#4 Wed 15 July 2009 15:32
- Bleuenn
- Juste Inscrit !
- Date d'inscription: 28 Jul 2008
- Messages: 2
Re: Rotation d'une image par mapserver
Bonjour,
merci pour votre aide!!
J'ai procédé ainsi :
1er paramètre : taille du pixel en x * cos (angle rotation)
2ème paramètre : -taille du pixel en x * sin(angle rotation)
3ème paramètre : -taille du pixel en y * sin(angle rotation)
4ème paramètre : -taille du pixel en y * cos (angle rotation)
Puis les coordonnées du pixel le plus en haut à gauche après rotation.
Bonne journée
Bleuenn
Hors ligne
#5 Wed 15 July 2009 15:57
Re: Rotation d'une image par mapserver
Sur la liste ESRI il y a eu la même discussion, Dominique Lys a fait un document synthétique, ce qui avait occasionné la création d'une page sur le wiki : http://georezo.net/wiki/main:donnees:worldfile
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#6 Fri 24 July 2009 12:20
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Rotation d'une image par mapserver
Bonjour,
Je reviens sur ce sujet de transformation de raster parce que les choses ne sont pas claires.
La source d'origine, théoriquement incontestable,
http://webhelp.esri.com/arcgisdesktop/9 … r_datasets
Dans Wikipedia http://fr.wikipedia.org/wiki/World_file (en francais)
et http://en.wikipedia.org/wiki/World_file (en anglais)
Dans GeoRezo on trouve http://georezo.net/wiki/main:donnees:worldfile
Le point commun à tous est que les 6 lignes d'un fichier World File sont les paramètres de la formule de transformation affine. Par contre, l'explication de ces paramètres (les 4 premiers) est différente, et naturellement ce n'est pas équivalent.
Je pense que le seul moyen de lever le doute est de faire un essai.
Je propose donc de procéder de la façon suivante : soit un fichier raster quelconque assorti de son fichier WorldFile (suffixe ??w tfw jgw ou autre.
On choisira de préférence un fichier dont les ligne 2 et 3 sont à zéro.
Maintenant on désire faire une rotation de cette image. La constitution du fichier est faite pour celà.
Par exemple, une rotation de 30° sin(30°)=0.50 cos(30°)=0.8660
Dans le WF de base, il est probable que la valeur de la première ligne est égale à celle de la 4è ligne, sauf le signe.
Modifier le fichier WF selon les explication dans les deux cas
Avec la méthode Wikipedia français, on obtient (L la valeur de la première ligne M la valeur positive de la 4è ligne)
1ère ligne Lx0.8860
2ème ligne Mx0.50
3ème ligne Lx0.50
4ème ligne -Mx0.8860
Si on veut pousser plus loin le calcul, on pourra par exemple doubler la valeur de M.
Observer le résultat.
Faire la même chose en suivant les indications anglaises. Observer le résultat.
Cette petite manip ne prendra que quelques instants, mais je pense qu'il est indispensable de lever le doute.
J'ai mis cette réponse à la suite d'une question identique dans le chapitre géolibre, mais elle est indépendante de tout logiciel.
Merci d'avance pour vos réponses.
Cordialement.
Hors ligne