#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
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
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
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-----------
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
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
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
Re: GRASS : Modifier la projection d'un Raster
Yarma,
j'aurais utilisé directement le parametre epsg ...
Code:
g.proj -c epsg=27572 location=Belledonne_Scan25
J'ai copié la doc (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
Re: GRASS : Modifier la projection d'un Raster
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
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
Hors ligne