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

Printemps des cartes 2024

#1 Mon 26 October 2009 17:24

N_Dericbourg
Participant occasionnel
Lieu: Belledonne
Date d'inscription: 9 Jul 2007
Messages: 45

GRASS : Modifier la projection d'un Raster

Bonjour,
je dispose d'un ensemble de rasters (cartes scan25) dont je voudrais modifier la projection (passage en Lambert93).
J'ai essayer d'utiliser la fonction r.proj mais je comprend pas bien comment ca fonctionne...
Est ce la bonne fonction? Comment fonctionne elle? Y a t il une autre fonction?
Merci pour votre aide...
ND

Hors ligne

 

#2 Mon 26 October 2009 17:37

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: GRASS : Modifier la projection d'un Raster

bonjour,

Il faut deux locations : une pour chaque projection. Mais je pense qu'il doit être possible de créer la location cible à la volée lors de la reprojection.

R.proj est la bonne commande pour reprojeter. http://grass.itc.it/grass62/manuals/htm … .proj.html

Tu te places dans la locations avec la projection cible. Ton raster se trouve dans la location avec la projection originel (chaque location a une projection définie).

Cette commande reprojetera la carte scan25 situé dans la location lambert2 dans la location en cours (par exemple "lambert93").

Code:

r.proj input=scan25 location=lambert2

Comme les projections sont définie au niveau de la location, la commande sait comment reprojeter le raster.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Tue 27 October 2009 09:10

N_Dericbourg
Participant occasionnel
Lieu: Belledonne
Date d'inscription: 9 Jul 2007
Messages: 45

Re: GRASS : Modifier la projection d'un Raster

Merci Yves pour tes explications, je comprend mieux la philosophie de la commande...
J'ai lancé la manip en ligne de commande et ca ne marche pas (pour l'instant).
rapport de plantage:

Code:

r.proj input=089_063 location=Belledonne_Scan25                                 
fichier <PROJ_INFO> introuvable pour le secteur <Belledonne_Scan25>
ERROR: Unable to get projection info of input map

Si je comprend bien, la location initiale n'a pas de fichier proj ?
Je comprend assez mal comment il est possible qu'une location n'ait pas d'info sur la projection, puisqu'on la définit à ce niveau...

Merci pour vôtre aide !

Hors ligne

 

#4 Tue 27 October 2009 09:39

Didier Bétored
Participant occasionnel
Lieu: Avignon
Date d'inscription: 29 Aug 2008
Messages: 22

Re: GRASS : Modifier la projection d'un Raster

Ci-dessous, tu trouveras le contenu du fichier proj_info tels qu'il doit être dans le permanent de la location en L93 :

name: Lambert Conformal Conic
datum: rgf93
proj: lcc
ellps: grs80
lat_0: 46.5000000000
lat_1: 44.0000000000
lat_2: 49.0000000000
lon_0: 3.0000000000
x_0: 700000.0000000000
y_0: 6600000.0000000000


à comparer à celui de la location en Lambert 2 étendu :

name: Lambert Conformal Conic
proj: lcc
a: 6378249.2
es: 0.0068034876
lat_1: 45.89891888888889
lat_2: 47.69601444444444
lat_0: 46.8
lon_0: 2.337229166666667
x_0: 600000
y_0: 2200000
towgs84: -168,-60,320,0,0,0,0
no_defs: defined


la définition d'une location en Lambert 93 utilisant les grilles n'est pas si triviale que ça. On avait fait un fil là dessus en son temps ...

Hors ligne

 

#5 Tue 27 October 2009 09:41

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: GRASS : Modifier la projection d'un Raster

bonjour,

Oui je pense qu'il doit être possible de sauter cette étape ... Utilise g.proj et regarde ce qu'il te sort. Tu dois pouvoir recréer les fichiers de définition de la projection pour la location.

Code:

g.proj -p location=Belledonne_Scan25

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Tue 27 October 2009 09:59

N_Dericbourg
Participant occasionnel
Lieu: Belledonne
Date d'inscription: 9 Jul 2007
Messages: 45

Re: GRASS : Modifier la projection d'un Raster

Le système de projection de la location "Belledonne_Scan25" a été définit en utilisant le Scan25 (option "utiliser un fichier géoréférencé")
Dans le dossier lié à cette location, pas de fichier proj_info...

en faisant tourner la commande de Yves on obtient :
                                               

g.proj -p location=Belledonne_Scan25                                           
XY location (unprojected)
(Tue Oct 27 09:52:23 2009) Command finished (0 sec)


Il semblerait qu'il n'y ait donc pas de projection définie!

En fouillant dans le .TAB lié à mes scan 25 je trouve ces infos:

CoordSys Earth Projection 3, 1002, "m", 0, 46.8, 45.898918964419, 47.696014502038, 600000, 2200000
Units "m"


Ca ressemble à du Lambert II carto, non?

Hors ligne

 

#7 Tue 27 October 2009 10:13

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: GRASS : Modifier la projection d'un Raster

Pour recréer les données deprojection d'une location, g.proj est toujours ton amis :

Code:

g.proj -c proj4='+init=epsg:27572 location=Belledonne_Scan25

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#8 Tue 27 October 2009 11:28

N_Dericbourg
Participant occasionnel
Lieu: Belledonne
Date d'inscription: 9 Jul 2007
Messages: 45

Re: GRASS : Modifier la projection d'un Raster

J'ai fait tourner la commande

Code:

g.proj -c proj4='+init=epsg:27572 location=Belledonne_Scan25

Le résultat est le suivant:

Code:

g.proj -c proj4=+init=epsg:27572 location=Belledonne_Scan25                     
ERROR: Unable to create location: File exists

Si je comprend bien, il semblerait que le fichier PROJ existe, or il n'apparait pas la ou il devrait être... Ou est le problème...

Du coup j'ai fait une autre manip:
Création d'une localion "L2" en utilisant le code EPSG 27572
Importation de mon scan25 en forçant l'utilisation de la projection de la location
commande r.proj

Résultat:

(Tue Oct 27 11:03:15 2009)                                                     
r.proj input=089_063 location=L2                                               
Paramètres de la projection d'entrée:  +proj=lcc +lat_1=46.8
+lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000
+y_0=2200000 +pm=paris +no_defs +a=6378249.2
+rf=293.466021294 +towgs84=-168,-60,320,0,0,0,0
Facteur unité d'entrée: 1
Paramètres de projection de sortie:  +proj=lcc +lat_1=49
+lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000
+no_defs +a=6378137 +rf=298.257222101 +towgs84=0,0,0,0,0,0,0
Facteur unité de sortie: 1
ERROR: Input raster map is outside current region
(Tue Oct 27 11:03:15 2009) Command finished (0 sec)


...Ça veut marcher, mais ca marche pas !

Hors ligne

 

#9 Tue 27 October 2009 11:31

Sylvain_M
Membre
Lieu: Lyon
Date d'inscription: 3 Aug 2009
Messages: 298

Re: GRASS : Modifier la projection d'un Raster

j'aurais utilisé directement le parametre epsg ...

Code:

g.proj -c epsg=27572 location=Belledonne_Scan25

sinon il est également possible de reprojeter les raster en dehors de grass (puis de les importer directement dans la bonne projection) en utilisant l'utilitaire gdalwarp (http://www.gdal.org/gdalwarp.html)

Code:

gdalwarp -s_srs EPSG:27572 -t_srs EPSG:2154 -r lanczos -of GTiff scan23_l2C.tif scan25_L93.tif

------edit-----------

N_Dericbourg a écrit:

g.proj -c proj4=+init=epsg:27572 location=Belledonne_Scan25                     
ERROR: Unable to create location: File exists


l'option -f est la pour ca: "Force override of datum transformation information" => force le changement de projection, même si il y a deja un fichier PROJ

N_Dericbourg a écrit:

ERROR: Input raster map is outside current region


cela ressemble à un probleme de l'etendue de la region non fixée ... essaye d'utiliser l'option -e (Étendre le Secteur actuel en fonction des données importés) lors de l'import de ton scan25 ou "g.region rast=ton_scan25" , et de fixer la region de ta location en lambert93

Dernière modification par yarma (Tue 27 October 2009 11:42)

Hors ligne

 

#10 Tue 27 October 2009 11:43

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: GRASS : Modifier la projection d'un Raster

N_Dericbourg,

Bon tes soucis viennent d'une mauvaise création de la location. Celle-ci a besoin de deux informations : la projection et la région. si un des paramètres est incorrecte tu auras des problèmes.

Dans un premier temps ton soucis vient de la projection qui n'a pas été définie. Maintenant le message d'erreur signifie que ta région n'est pas bonne car ton raster est en dehors de cette zone. Or GRASS n'importe pas les données en dehors de lazone de travail (logique non ?). Il faut soit que tu crées une location avec la bonne projection et la bonne région, soit que tu modifies la région de travail si ta projection est correcte.

Via QGIS cela est assez aisé ! Tu cliques sur le bouton "Nouveau jeu de données", choisir le répertoire de la GeoDatabase, puis dans la liste "Créez un nouveau secteur". Dans l'étape suivante, choisie la bonne projection, puis next" et choisir la région qui te convient. Tu peux chercher "France" dans la liste déroulante pour utiliser une région prédéfinie. Enfin choisie le nom du jeu de données.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#11 Tue 27 October 2009 12:01

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: GRASS : Modifier la projection d'un Raster

Yarma,

yarma a écrit:

j'aurais utilisé directement le parametre epsg ...

Code:

g.proj -c epsg=27572 location=Belledonne_Scan25


J'ai copié la doc wink (version 6.2) en effet la version 6.3 apporte de nouveaux paramètres : http://grass.fbk.eu/grass63/manuals/htm … .proj.html

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#12 Tue 27 October 2009 12:17

N_Dericbourg
Participant occasionnel
Lieu: Belledonne
Date d'inscription: 9 Jul 2007
Messages: 45

Re: GRASS : Modifier la projection d'un Raster

Je commence à bien comprendre mon problème (c'est très pédagogique quand ca ne fonctionne pas!).

Yves,
J'ai suivi tes consignes sous QGIS et là ca plante encore !
Au moment de définir le système de projection, quel que soit le système choisi, le PC me sort :

Erreur fatale de GRASS.
G_getenv(): Variable GISBASE not set.

...

Hors ligne

 

#13 Tue 27 October 2009 14:00

Sylvain_M
Membre
Lieu: Lyon
Date d'inscription: 3 Aug 2009
Messages: 298

Re: GRASS : Modifier la projection d'un Raster

voici la démarche complète à suivre dans grass:

depuis l'interface graphique de lancement de grass
créer une nouvelle localisation "scan25_L93"
selectionner le code epsg: 2154
fixer l'etendue de la region: north=7.22203e+06 west=-2754.01 south=5.97898e+06 east=1.32754e+06 n-s_res=2.5 e-w_res=2.5 (c'est la résolution que j'ai en regardant dans les fichiers tfw accompagnant les dalles scan25)
ne pas rentrer dedans

creer une nouvelle localisation "scan25_L2"
code epsg 27572
etendue: north=2.78757e+06 west=-47619.1 south=1.54696e+06 east=1.28447e+06  n-s_res=2.5 e-w_res=2.5
entrer dedans

dans l'invite de commande de grass (location scan25_L2):
aller dans le dossier ou se trouvent les dalles scan25 (cd c:\...)
taper la commande "r.in.gdal -e -o input=089_063.TIF output=089_063" pour importer l'image (le -o est important car les fichiers tif ne contiennent aucune info de georéférencement)
lancer cette commande pour chaque image a importer
sortir de grass

lancer grass et se rendre dans la localisation "scan25_L93"
dans l'invite de commande taper "r.proj location=scan25_L2 input=089_063"
recommencer pour chaque image a reprojeter

attention: à cause du recalcul des images des distortions peuvent aparaitre surtout si elles sont situées loin du centre de la zone de projection, il y a parfois des blancs entre les images reprojetées => pour éviter ca il faut créer une mozaique avec les images d'origine et travailler à partir de cette nouvelle image

Hors ligne

 

#14 Tue 27 October 2009 14:21

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: GRASS : Modifier la projection d'un Raster

N_Dericbourg a écrit:

Code:

Erreur fatale de GRASS.
G_getenv(): Variable GISBASE not set.

...


tu as un message posté dernièrement sur GeoLibre qui explique comment définir cette variable d'environnement :
http://georezo.net/forum/viewtopic.php? … 12#p150912

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#15 Thu 29 October 2009 10:28

N_Dericbourg
Participant occasionnel
Lieu: Belledonne
Date d'inscription: 9 Jul 2007
Messages: 45

Re: GRASS : Modifier la projection d'un Raster

a Yarma: ta méthodo fonctionne bien ! merci.
A quoi correspond l'extension de la région que tu me propose d'utiliser?


a Yves: Mon erreur fatale est maintenant surmontée ! merci.

Merci à tous.

Hors ligne

 

#16 Thu 29 October 2009 10:39

Sylvain_M
Membre
Lieu: Lyon
Date d'inscription: 3 Aug 2009
Messages: 298

Re: GRASS : Modifier la projection d'un Raster

N_Dericbourg a écrit:

A quoi correspond l'extension de la région que tu me propose d'utiliser?


ca correspond aux bornes de la france (les valeurs différentes sont liées aux différences de projection): vu que tu avais une erreur de region mal définie, je me suis dis que comme ca au moins c'était certain qu'un scan25 passe wink

Hors ligne

 

Pied de page des forums

Powered by FluxBB