[postgis-commits] svn - r3876 - spike/wktraster/scripts
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Mon Mar 16 15:57:33 PDT 2009
Author: pracine
Date: 2009-03-16 15:57:33 -0700 (Mon, 16 Mar 2009)
New Revision: 3876
Modified:
spike/wktraster/scripts/gdal2wktraster.py
Log:
Added an option (-F) to add the name of the file in a new column. This is useful to correctly identify tiles order from filenames after loading.
Modified: spike/wktraster/scripts/gdal2wktraster.py
===================================================================
--- spike/wktraster/scripts/gdal2wktraster.py 2009-03-16 22:23:58 UTC (rev 3875)
+++ spike/wktraster/scripts/gdal2wktraster.py 2009-03-16 22:57:33 UTC (rev 3876)
@@ -65,6 +65,8 @@
help="drop table, create new one and populate with raster(s)")
optprs.add_option("-f", "--field", dest="column", action="store", default=g_rt_column,
help="specify name of raster data column, default is 'rast'")
+ optprs.add_option("-F", "--filename", dest="filename", action="store_true", default=False,
+ help="insert a column with the name of the file")
optprs.add_option("-R", "--register", dest="register", action="store_true", default=False,
help="register the raster as a filesystem (out-db) raster")
optprs.add_option("-I", "--index", dest="index", action="store_true", default=False,
@@ -298,14 +300,21 @@
return sql
-def make_sql_create_table(table, rast):
- sql = "CREATE TABLE %s (rid serial PRIMARY KEY, \"%s\" RASTER );\n" % (make_sql_full_table_name(table), rast)
+def make_sql_create_table(table, rast, insert_filename):
+ if insert_filename:
+ sql = "CREATE TABLE %s (rid serial PRIMARY KEY, \"filename\" text, \"%s\" RASTER );\n" % (make_sql_full_table_name(table), rast)
+ else:
+ sql = "CREATE TABLE %s (rid serial PRIMARY KEY, \"%s\" RASTER );\n" % (make_sql_full_table_name(table), rast)
logit("SQL: %s" % sql)
return sql
-def make_sql_insert_raster(table, rast, hexwkb):
- sql = "INSERT INTO %s ( %s ) VALUES ( (\'%s\')::raster );\n" % (make_sql_full_table_name(table), rast, hexwkb)
+def make_sql_insert_raster(table, rast, hexwkb, insert_filename, file):
+ if insert_filename:
+ sql = "INSERT INTO %s ( filename, %s ) VALUES ( (\'%s\')::text, (\'%s\')::raster );\n" % (make_sql_full_table_name(table), rast, file, hexwkb)
+ else:
+ sql = "INSERT INTO %s ( %s ) VALUES ( (\'%s\')::raster );\n" % (make_sql_full_table_name(table), rast, hexwkb)
+
# NOTE: Usually, no need for such detailed verbosity
#logit("SQL: %s" % sql)
return sql
@@ -333,7 +342,7 @@
fout.write(sql)
# CREATE TABLE
- sql = make_sql_create_table(opts.table, opts.column)
+ sql = make_sql_create_table(opts.table, opts.column, opts.filename)
fout.write(sql)
# Burn all specified input raster files into single WKTRaster table
@@ -343,13 +352,13 @@
filelist = glob.glob(infile)
for file in filelist:
logit("MSG: Raster #%d: %s\n" % (i + 1, file))
-
+
hexwkb = wkblify_raster(file, opts.band, g_rt_version, g_rt_endiannes, opts.srid, opts.register)
assert len(hexwkb) > 0, "Error: No HEX WKB generated"
assert (len(hexwkb) % 2 == 0), "Error: Invalid size of generated HEX WKB"
# INSERT INTO ... (rast) VALUES (...)
- sql = make_sql_insert_raster(opts.table, opts.column, hexwkb)
+ sql = make_sql_insert_raster(opts.table, opts.column, hexwkb, opts.filename, file)
fout.write(sql)
i += 1
More information about the postgis-commits
mailing list