#1 Tue 20 March 2007 17:10
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Grass : questions diverses
Bonjour,
Je cherche à mettre en coordonnées region, sous grass60 des images raster png faites avec the gimp. Le tout sous linux.
mon image gimp fait 700X580 pixels
la map de grass n=2138994 s=2132265 o=751232 e=759410
systeme : lambert II extended
Peut-on sans trop de douleur générer du shape avec des outils autres que le suivi des courbes de niveau et un/son code ?
la structure des enregistrements de shape est un peu complexe....
Voilà, beaucoup de questions !
Qu'en pensez vous ?
Cordialement
Hors ligne
#2 Tue 27 March 2007 19:18
Re: Grass : questions diverses
Bonsoir,
Sous grass vous pouvez vectoriser un raster. Mais attention, au raster utilisé au départ, votre fichier vecteur risque de ne pas être utilisable. La commande est "r.to.vect".
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 Thu 29 March 2007 15:40
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Merci Yves
J'ai récupéré sur le net un programme en pascal pour transformer les coordonnées Dms en Lambert 2. Il donne des résultats incorrects et induit une forte déformation de mon raster cible dans lma zone NE.
Je peux vous envoyer une version c++ qui donne les même erreurs que celle retranscrite en scilab !
Je ne sais absolument pas où trouver les paramètres d'ajustement de l'éllipsoide de référence en Lambert 2 pour ma région entre 46°20 et 46°25 E.
L'erreur lors du géoréférencement sous GRASS mesemble provenir des fautes d'ajustement des paramètres du programme.
Bien cordialement.
Code:
#ifdef HAVE_CONFIG_H #include <config.h> #endif #include <cmath> #include <iostream> #include <cstdlib> using namespace std; double latISO(double phi); // donne la latitude isomï¿œique Code: double latISO(double phi) { // radians ! double adg = 6378249.2; // demi grand axe de l'ellipsoide double bdg = 6356515.0; double e; double v; double esinphi; double f; double esur2; f=(adg-bdg)/adg; // aplatissement e=sqrt((adg*adg-bdg*bdg)/(adg*adg)) ; // premiere excentricité esur2=e/2; esinphi=e*sin(phi); v=(1-esinphi)/(1+esinphi); v=exp(esur2*log(v)); return log(tan(M_PI_4+phi/2)*v); } // et THE procedure!! Code: double * lglttolambert2et (double lg , double lt, double * r ) { //const k0 : double =0.99987741; //facteur aplatissement de la projection double doublenl; double phi; double lambda; double rs; double phi0; double n; double pm; double lambda0; double nl; // pour optimiser la vitesse de calcul pm=M_PI/180; lambda0=2.33723*pm; //2.33638888888888907*pm; //dmstocentieme('220''11"E')*pm; //origine lambert 2 phi0=46.8*pm ; //origine lambert 2 n=sin(phi0); if ((lg<-5.6) || (lg>9) || (lt<41) || (lt>52)) { // controle des limites: valide //x=0; //y=0; // seulement en France! exit(-1); } phi=lt*pm; // conversion en radians lambda=lg*pm; nl=11745793.39*exp(-n*latISO(phi)); rs=n*(lambda-lambda0); r[0]= 600000+nl*sin(rs)-8; //r++; r[1]=8199695.768-nl*cos(rs)+7; } //et on a x=719446 y=2557241 int main(int argc, char *argv[]) { double r[2]; double lg=0; double lt=0; if (argv[1]!=NULL) { lg = atof(argv[1]); } if (argv[2]!=NULL) { lt = atof(argv[2]); } //r=malloc(2*sizeof(double)); lglttolambert2et(lg, lt, (double *) &r); printf("longitude : %12.2f latitude : %12.2f\n",r[0],r[1]); return EXIT_SUCCESS; }
Hors ligne
#4 Fri 30 March 2007 07:31
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Erratum.
Bien sûr j'ai confondu lat. et long ! Je voulais dire que mes données sont entre 4°10' et 4°22'.
et non entre 5°6 et 9°
Hors ligne
#5 Fri 30 March 2007 08:41
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Grass : questions diverses
Bonjour,
Peut-être un indice ici:
http://www.linux-nantes.fr.eu.org/piper … 00900.html
Les paramètres de l'ellipsoide:
http://www.ign.fr/telechargement/FAQ/FAQ5.pdf
D'une façon générale:
recherche google avec comme mot clef : Ellipsoide Clark
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#6 Fri 30 March 2007 15:10
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Merci Christophe,
Mes grand axes et petit axe sont OK.
Je vois que Basile a eu le même problème.
Je cherche encore le recadrage....
A+
Armand
Hors ligne
#7 Fri 30 March 2007 16:30
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Pour se résumer, si j'ai bien compris :
1- On assimile le géoïde à un ellipsoïde de centre : le centre terrestre, de petit et grand axe : à choisir selon Lambert étendu ou 93 ? (logique?)
2- Pour avoir une carte, on projette sur un plan tangeant les coordonnées angulaires phi et theta (relevées sur la carte IGN) pour obtenir X,Y (dans un voisinage V.... qui est un ouvert....), là je dérape un peu !
3- Pour celà, il faut calculer d'abord rho(0) et n
et au travers de formules : X= rho*sin(theta) + X0 ; Y= Y0 + rho0 -rho*cos(theta)
Il vaut mieux utiliser en France la norme Lambert 93
C'est ce que l'on trouve sur les cartes IGN au 1/25000 ème ?
Je crois voir + clair ?
Cordialement
Hors ligne
#8 Wed 04 April 2007 17:57
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Bonjour,
GRASS60 Linux
Les rasters créés à partir de GIMP (pixels) images 750X600 sont maintenant parfaitement géoréférencés.
les images obtenues sont bonnes.
Pour faire des vecteurs partant d'un raster input=chemins, j'apllique r.thin et obtiens un fichier qui est transformé par r.to.vect.
MAIS: De très nombreux arcs sont reliés entre eux par des lignes à 45 degrés,
les essais avec v.thin refont une topologie, mais pas ou peu d'amélioration....
Puis-je espérer "couper" les liens ou faut-il passer à une autre technique livrant un raster plus "thin" ?
Cordialement
Hors ligne
#9 Sun 08 April 2007 14:39
Re: Grass : questions diverses
Bonjour,
Tout le problème est là, lorsqu'on vectorise un rasteur. Il est possible de nettoyer votre vecteur : r.thin est un moyen, il en existe d'autre en fonction de vos erreurs : v.clean par exemple.
Description:
Toolset to clean vector topology
Keywords:
vector
Usage:
v.clean [-b] input=name output=name [type=string[,string,...]]
[error=name] tool=string[,string,...] [thresh=value[,value,...]]
[--overwrite]
Flags:
-b Do not rebuild and store the topology at the end
--o Force overwrite of output files
Parameters:
[..]
error Name of output map where errors are written
tool Cleaning tool
options: break,rmdupl,rmdangle,chdangle,rmbridge,chbridge,snap,
rmdac,bpol,prune,rmarea,rmsa
break: break lines at each intersection
rmdupl: remove duplicate lines (pay attention to categories!)
rmdangle: remove dangles, threshold ignored if < 0
chdangle: change the type of boundary dangle to line, threshold ignored if < 0, input line type is ignored
rmbridge: remove bridges connecting area and island or 2 islands
chbridge: change the type of bridges connecting area and island or 2 islands from boundary to line
snap: snap lines to vertex in threshold
rmdac: remove duplicate area centroids ('type' option ignored)
bpol: break (topologically clean) polygons (imported from non topological format (like shapefile). Boundaries are broken on each point shared between 2 and more polygons where angles of segments are different
prune: remove vertices in threshold from lines and boundaries, boundary is pruned only if topology is not damaged (new intersection, changed attachement of centroid), first and last segment of the boundary is never changed
rmarea: remove small areas, the longest boundary with adjacent area is removed
rmsa: remove small angles between lines at nodes
thresh Threshold
Threshold in map units, one value for each tool (default: 0.0[,0.0,...])
Y.
Dernière modification par Yves (Sun 08 April 2007 14:41)
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
#10 Wed 11 April 2007 08:56
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Bonjour,
J'ai contourné le problème de la vectorisation en utilisant des données (numériques) plus "fines" : le scan d'une carte IGN. Après géoréférencement, la vectorisation 2D s'effectue normalement, sans sauvegarde dans une table MySQL des attributs et sites ou points (sans doûte lié à l' absence de CREATION de la base MySQL ou BDF).
DANS LA SUITE JE TRAITE directement mes données
Il me faut recueillir des infos pour créer une carte 2.5D ET SAUVEGARDER dans des tables si possible MySQL.
Comme dans le cas de la création d'une base sous "apache", il me faudra résoudre le problème d'attribution des droits, lors de la création de la dite base SQL, après celà, les commandes d'ajout, de modification d'enregistrement, d'envoi de la table sur le serveur sont transparents !!
Si quelqu'un a l'expérience de la liaison d'une base MySQL (ou dbase) sous GRASS60, je suis preneur.
Autrement, le logiciel GRASS est bien documenté,
même si la préhension des outils est parfois délicate : pp 84-88 de la doc GDF Hannovre (Numériser sous GRASS)
C'EST A DIRE :
PAS DE TABLE, ==> PAS de fenêtre FORM après la saisie d'une courbe de niveau.
Coment créer cette table avec v.digit où est le "menu paramètres --> Table (voir figure 22)" ????
Merci à la communauté de lire et répondre aux questions d'un amateur.
Bien cordialement
Hors ligne
#11 Wed 11 April 2007 14:35
Re: Grass : questions diverses
Bonjour,
Pour gérer tout ce qui concerne les tables d'une base, vous avez les outils db.xxx, db.execute pour éxécuter une requête par exemple. Liste des commandes :
* db.columns
* db.copy
* db.drivers
* db.login
* db.tables
* db.connect
* db.describe
* db.execute
* db.select
* db.test
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 Fri 13 April 2007 10:03
- alcibiade
- Participant occasionnel
- Date d'inscription: 20 Mar 2007
- Messages: 12
Re: Grass : questions diverses
Bonjour,
Merci à Yves et Bruno et à beaucoup d'autres (comme Luigi en Italie, Thierry à Strassbg et Moritz ) qui m'ont permis de bien appréhender la complexité de gestion et conduite d'un projet SIG à partir de données locales, nécessairement (et presque obligatoirement) extraites de celles de l'Institut IGN ??? pour être complétées sous GRASS.
Le prix d'accès aux scans est un peu élevé pour une petite communauté rurale qui souhaite présenter au touriste du net ses sites historiques et ses lieux de villégiature.... enfin entrer dans la société de l'information.
Nous poursuivons l'aventure, en espérant minimiser la fonction coût, (sans faire appel à Pontriagine !) ... pour trouver la commande optimale.
Il y a certes encore beaucoup à faire pour démocratiser le système et faire avancer la communauté des amateurs derrière celle des Pros.
Courage, les amis, on avance....
Armand
Hors ligne