Un très petit post de blog pour garder sous le coude deux ou trois petites choses qui peuvent servir quand on veut préparer rapidement des données SIG pour netlogo…
J’ai eu besoin là tout de suite de découper une couche vectorielle, mais je n’avais pas à ma disposition de couche pour faire le clip… Donc j’ai cherché un moyen d’utiliser la bbox (non ce n’est pas la box de chez Bouygues Telecom mais boundary box : le rectangle qui contient toutes les entités vectorielles)
Eh bien j’ai trouvé sur un post de Tim Sutton (Linfiniti.com) des petites astuces pour me simplifier la vie :
Définir la bbox
Tim propose un petit script bash qui fait des merveilles et que je me permets de reprendre ici :
#!/bin/bash SHPFILE=$1 BASE=`basename $SHPFILE .shp` EXTENT=`ogrinfo -so $SHPFILE $BASE | grep Extent \ | sed 's/Extent: //g' | sed 's/(//g' | sed 's/)//g' \ | sed 's/ - /, /g'` EXTENT=`echo $EXTENT | awk -F ',' '{print $1 " " $4 " " $3 " " $2}'` echo $EXTENT
si l’on considère que mon script s’appelle extent.sh on pourra donc obtenir la bbox avec
./extent.sh monShapeFile.shp 3.058669 42.531248 3.065417 42.526966
Découper le shapeFile avec l’emprise
On peut ensuite bien tranquillement profiter de la commande que je proposais dans le précédent post sur le sujet, où en lieu et place du shapeFile nous pouvons passer directement l’emprise!
ogr2ogr -clipsrc 3.058669 42.531248 3.065417 42.526966 -s_srs epsg:2154 -t_srs epsg:4326 ParcellesVitiSQLITE/small_parcellesWGS84.shp ParcellesVitiSQLITE/ParcellesViti_L93.shp
Découper un raster avec l’emprise
Attention le fonctionnement de gdalwrap est un peut différent de l’option clipsrc … il faudra réorganiser les coordonnées. On effectuera la découpe comme ça :
gdalwarp -te 3.058669 42.526966 3.065417 42.531248 temperature_zone.tif temperature_zone_crop.tif
et il ne faudra pas oublier de convertir le fichier en asc avec
gdal_translate -of "AAIGrid" -b 1 -co FORCE_CELLSIZE=TRUE temperature_zone_crop.tif temperature_zone_crop.acs
Voilà on peut vite repasser dans netlogo avec le p’tit post précédant (ou gama :-p )