I needed to recursively document a bunch of Shapefiles and geotiffs in a hierarchy of directories (soon file geodatabses). I can’t use Arc*anything so I’m using ogrinfo and gdalinfo in many directories. I started using xargs, but ran into weirdness beyond white characters, and involving bash string manipulation (I’m running on Cygwin in windows…). So I switched approaches and came up with this little ditty.
#!/bin/sh
echo "********************** START Shapefiles ***********************"
echo ""
for x in $(find ./* -type f -name \*.shp); do
base=${x##*/}
echo "--- Found the Shapefile " $base "and the base layer of " ${base%.*}
/bin/GDAL/./ogrinfo.exe -ro -so -al -fields=YES -geom=SUMMARY $x
echo ""
done
echo ""
echo "********************** END Shapefiles ***********************"
echo "********************** START TIFFs ***********************"
echo ""
for y in $(find ./* -type f -name \*.tif); do
base=${y##*/}
echo "--- Found the TIFF file " $base "and the base layer of " ${base%.*}
/bin/GDAL/./gdalinfo.exe -approx_stats -mm -noct -proj4 $y
echo ""
done
echo ""
echo "********************** END TIFFs ***********************"
which outputs things like this for a TIFF
--- Found the TIFF file melcd_2004_imperviousness.tif and the base layer of melcd_2004_imperviousness
Driver: GTiff/GeoTIFF
Files: ./Land_Characteristics/impervs/melcd_2004_imperviousness.tif
./Land_Characteristics/impervs/melcd_2004_imperviousness.tfw
./Land_Characteristics/impervs/melcd_2004_imperviousness.aux
Size is 65102, 99355
Coordinate System is:
PROJCS["UTM",
GEOGCS["NAD83",
DATUM["North_American_Datum_1983",
SPHEROID["GRS 1980",6378137,298.2572221010002,
AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4269"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",-69],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["meters",1],
AUTHORITY["EPSG","26919"]]
PROJ.4 string is:
'+proj=utm +zone=19 +datum=NAD83 +units=m +no_defs '
Origin = (336631.500000000000000,5256292.500000000000000)
Pixel Size = (5.000000000000000,-5.000000000000000)
Metadata:
AREA_OR_POINT=Point
TIFFTAG_RESOLUTIONUNIT=1 (unitless)
TIFFTAG_SOFTWARE=IMAGINE TIFF Support
Copyright 1991 - 1999 by ERDAS, Inc. All Rights Reserved
@(#)$RCSfile: etif.c $ $Revision: 1.10.1.9.1.9.2.11 $ $Date: 2004/09/15 18:42:01EDT $
TIFFTAG_XRESOLUTION=0.2
TIFFTAG_YRESOLUTION=0.2
Image Structure Metadata:
COMPRESSION=CCITTRLE
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 336631.500, 5256292.500) ( 71d10' 0.27"W, 47d26'22.55"N)
Lower Left ( 336631.500, 4759517.500) ( 71d 0'12.02"W, 42d58'14.82"N)
Upper Right ( 662141.500, 5256292.500) ( 66d50'58.28"W, 47d26'23.65"N)
Lower Right ( 662141.500, 4759517.500) ( 67d 0'42.12"W, 42d58'15.76"N)
Center ( 499386.500, 5007905.000) ( 69d 0'28.13"W, 45d13'28.69"N)
Band 1 Block=65102x2 Type=Byte, ColorInterp=Palette
Description = Band_1
Min=0.000 Max=1.000 Computed Min/Max=0.000,1.000
Minimum=0.000, Maximum=1.000, Mean=0.992, StdDev=0.091
Metadata:
LAYER_TYPE=athematic
STATISTICS_MAXIMUM=1
STATISTICS_MEAN=0.99165311862261
STATISTICS_MEDIAN=0
STATISTICS_MINIMUM=0
STATISTICS_MODE=1.9020308565413e-230
STATISTICS_STDDEV=0.090979178661602
Image Structure Metadata:
NBITS=1
Color Table (RGB with 2 entries)
<GDALRasterAttributeTable />
and things like this for a Shapefile
********************** START Shapefiles ***********************
--- Found the Shapefile acfish2.shp and the base layer of acfish2
INFO: Open of <code>./Bio_Eco_Cons/acfish2s/acfish2.shp'
using driver </code>ESRI Shapefile' successful.
Layer name: acfish2
Geometry: Multi Point
Feature Count: 177
Extent: (356761.978694, 4771813.744319) - (653088.978694, 5004932.744319)
Layer SRS WKT:
PROJCS["NAD_1983_UTM_Zone_19N",
GEOGCS["GCS_North_American_1983",
DATUM["North_American_Datum_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["False_Easting",500000.0],
PARAMETER["False_Northing",0.0],
PARAMETER["Central_Meridian",-69.0],
PARAMETER["Scale_Factor",0.9996],
PARAMETER["Latitude_Of_Origin",0.0],
UNIT["Meter",1.0]]
ACFISH2_ID: Integer (9.0)
DMR_ID: String (5.0)
ECCM_ID: String (5.0)
YEAR: String (4.0)
ECCM_SP: String (10.0)
USFW_SP: String (10.0)
DMR_SP: String (10.0)
DMR_NAME: String (30.0)
Now I just need to see about getting this working with File geodatabases!