(ceci est une traduction du site).
La bibliothèque C Shapefile fournie la possibilité d'écrire de simple programme en c pour lire, écrire et mettre à jour (dans une étendue limitée) des Shapefile d'ESRI, et leur attribut associé (.dbf). Des outils à utiliser en ligne de commande sont fournies avec cette bibliothèque.
Liste des outils :
Exemple :
$ dbfcreate testbase -s NAME 20, -n AREA 9 3, -n VALUE 9 2 # this will create a file named testbase.dbf with 3 fields: NAME ( string (20)), AREA ( float (9,3)) and VALUE ( float (9,2))
Exemple :
$ dbfadd testbase.dbf REGION1 25.656 150.22 # en supposant que testbase.dbf possède 3 champs ( NAME, AREA and VALUE), cette commande insérera un nouvel enregistrement dans //testbase.dbf// avec les valeurs "REGION1" pour le champ NAME, '25.656' pour le champ AREA et '150.22' pour le champ VALUE.
Exemple :
$ dbfdump -h testbase.dbf # en supposant que testbase.dbf a un enregistrement (inséré par l'exemple précédent en utilisant ''dbfadd''), cette commande produira les données suivantes : Field 0: Type=String, Title=`NAME', Width=20, Decimals=0 Field 1: Type=Double, Title=`AREA', Width=9, Decimals=3 Field 2: Type=Double, Title=`VALUE', Width=9, Decimals=2 NAME AREA VALUE REGION1 25.656 150.22
Exemple :
$ shpcreate testpolygon polygon # Cela créera un shapefile ponctuel nommé //testpolygon// (en fait testpolygon.shp et testpolygon.shx seront créé).
Exemple :
$ shpadd testpolygon 100000 7000000 250000 6500000 200000 6000000 100000 7000000 # en supposant que testpolygon est un shapefile polygonal, cette commande insérera un nouveau shape (un triangle) dans //testpolygon// avec les coordonnées XY suivantes : vertice 0: 100000 7000000 (cela sera également le sommet où le shape démarre et se termine) vertice 1: 250000 6500000 vertice 2: 200000 6000000 vertice 3: 100000 7000000
Exemple :
$ shpdump testpolygon # en supposant que //testpolygon// est un shapefile existant déjà créé, cette commande affichera le résultat suivant : Shapefile Type: Polygon # of Shapes: 1 File Bounds: ( 100000.000, 6000000.000,0,0) to ( 250000.000, 7000000.000,0,0) Shape:0 (Polygon) nVertices=4, nParts=1 Bounds:( 100000.000, 6000000.000, 0, 0) to ( 250000.000, 7000000.000, 0, 0) ( 100000.000, 7000000.000, 0, 0) Ring ( 250000.000, 6500000.000, 0, 0) ( 200000.000, 6000000.000, 0, 0) ( 100000.000, 7000000.000, 0, 0)
Exemple :
$ shprewind badshapefile newshapefile
Exemple :
$ dbfinfo testbase Info pour testbase.dbf 3 Columns, 1 Records in file NAME string (20,0) AREA float (9,3) VALUE float (9,2)
Exemple :
$ dbfcat -v testbase1 testbase2
Exemple :
$ shpinfo testpolygon Info for testpolygon Polygon(5), 1 Records in file File Bounds: ( 100000, 6000000) ( 250000, 7000000)
Exemple :
$ shpcat shapefile1 shapefile2
Exemple :
$ shpcentrd apolygonfile pointcentrd
Exemple :
$ shpdxf testshapefile IDFIELD # ...
Exemple :
$ shpfix broken fixed
L'entré peut provenir d'un des trois sources. Un fichier de paramètre de projection, directement via des paramètres ou géographique. Si le shapefile possède un fichier prj, de même nom que le shapefile mais finissant par “.prj” il sera utilisé par défaut et tous les autres paramètres seront ignorés. Si l'entré est omise sa valeur par défaut est géographique, sauf si le fichier prj existe.
La sortie peut provenir d'un des trois sources. Un fichier de paramètre de projection, directement via des paramètres ou géographique. Si la sortie est omise sa valeur par défaut est géographique.
Ce fichier doit se terminer avec l'extension “.prj”. Il est sous la forme d'un paramètre projection par ligne. Les paramètres peuvent être dans n'importe quel ordre. Les paramètres de projection sont ceux utilisé pour définir une projection PROJ.4.
Les paramètres de projection sont les mêmes que ceux utilisés par proj et invproj. Utilisez
Ou visitez la page web du projet PROJ.4 sur http://www.remotesensing.org/proj pour plus de détails.
Exemples :
Les exemples suivants projettent un fichier rowtest vers row3, déplace des données de Stateplane NAD83 zone 1002 vers utm zone 16 en mètres
shpproj rowtest row -i=“init=nad83:1002 units=us-ft” -o=“proj=utm zone=16 units=m”
shpproj rowtest row3 -o="proj=utm zone=18 units=m" -i="zone=16 proj=utm units=us-ft"
shpproj rowtest row3 -o="proj=utm zone=18 units=m"
shpproj rowtest row3 -i=myfile.prj -o=geographic shpproj rowtest row3 -is=myfile.prj