create a regular grid

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

create a regular grid

R_Tavares
Salut,

Je devrais faire une maille grid regulaire pour faire la extraction de donnés dans une domaine avec information avec OrbisGIS V4. J'ai essayé de utiliser la fonction 'select STO_CreateGrid(4000,1000[,15]) from myTable'  mais ça marche pas. Donc, comme je devrai  faire, pour créer la maille avec point de référence (origine) et dimensions spécifiques?

Merci pour votre aide,

à bien tout,

Richard
Reply | Threaded
Open this post in threaded view
|

Re: create a regular grid

Gwendall Petit
Administrator
Bonjour Richard,

Je pense que tu dois te référer à une ancienne documentation car la fonction STO_CreateGrid n'existe plus depuis la version 3.0.2.
Désormais, la fonction qui permet de créer des grilles se nomme ST_CreateGrid (le changement est due à une harmonisation du nom de toutes les fonctions pour être plus cohérent avec la norme SFS).
Pour utiliser cette fonction dans la V4.0, il te suffit de l'appeler comme suit :
SELECT * FROM ST_CreateGrid(table, 4000,1000[,15]);
Ou
  * "table" est le nom de la table qui va servir de base pour créer la grille
  * 4000 est la largeur (X)
  * 1000 la hauteur (Y)
  * [,15] l'orientation de la grille (c'est optionnel, c'est pourquoi c'est noté entre crochet).
Les valeurs sont là à titre indicatif, à toi de les changer en fonction de tes besoins.

Pour information, cette instruction est facilement retrouvable dans le dépôt de fonctions SQL (accessible en cliquant sur le petit icone vert et bleu à droite de la disquette bleue pour sauvegarder), dans la console SQL.

J'espère que ça va t'aider.

Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: create a regular grid

R_Tavares
Bonjour Gwendall,

J'ai déjà fais la grid comme tu as dit, mais j'ai un problème:
(sorry for writting in english, but it's easier to explain)

How can I generate a regular grid with a specific point of origin that will not be coincident with the database domain limits (which is giving by using the recommended function). I've looked and do not find information on how to do it.

Merci pour l'aide

Cordialement,

Richard
Reply | Threaded
Open this post in threaded view
|

Re: create a regular grid

Gwendall Petit
Administrator
Bonjour Richard,

As explained before, the ST_CreateGrid function needs at least 3 parameters.
  * the table --> OrbisGIS will compute the bounding box (determined with ST_Envelope function) of united geometries
  * length parameter
  * height parameter

If you want to specify your own bounding box (which is different from the table), the only way is to produce a new table composed of two points (North-West point and South-East point for example)
For that, you can use this kind of instruction :
-- You create a new empty table, with only one field dedicated to the geometry
CREATE TABLE study_area (the_geom geometry);
-- Then you insert two new points (as explained below) (here they are in Lambert 93)
INSERT INTO study_area values (ST_MakePoint(280840.0376215463, 6649967.838122384));
INSERT INTO study_area values (ST_MakePoint(404192.51025766594, 6757884.9983879505));
-- Then you can compute your grid, based on "study_area" table
CREATE TABLE mygrid AS SELECT * FROM ST_CreateGrid(study_area, 4000,1000);
Hope it helps

Regards,

Gwendall