[Gfoss] rasterlite: prove

Marco Curreli marcocurreli a tiscali.it
Gio 16 Giu 2011 23:10:22 CEST


Ciao a tutti,

ho fatto alcune prove con rasterlite.

Ho provato a combinare assieme due vestizioni della stessa mappa, in
formato geotiff, nella stesa piramide, in modo da visualizzare mappe con
diversi dettagli a scale diverse. Per farlo ho creato un file sql con un
serie di istruzioni, sfruttando le mie poche conoscenze del linguaggio
sql. Funziona a meraviglia.

Riporto il codice sql:

BEGIN ;
	CREATE VIEW IF NOT EXISTS base250_rm AS
	SELECT base250_rasters.id, raster, source_name, tile_id, width, height, pixel_x_size, pixel_y_size, geometry
	FROM base250_rasters
	JOIN base250_metadata ON (base250_rasters.id = base250_metadata.id) AND (base250_metadata.pixel_x_size < 160) ;

	CREATE VIEW IF NOT EXISTS base500_rm AS
	SELECT base500_rasters.id, raster, source_name, tile_id, width, height, pixel_x_size, pixel_y_size, geometry
	FROM base500_rasters
	JOIN base500_metadata ON (base500_metadata.id = base500_rasters.id) AND (base500_metadata.pixel_x_size >= 160) ;
COMMIT ;

ATTACH DATABASE  "/home/marco/quantumnik/base10m/base.sqlite" AS "base" ;

BEGIN ;
	CREATE TABLE base.base_metadata (
	id INTEGER NOT NULL PRIMARY KEY,
	source_name TEXT NOT NULL,
	tile_id INTEGER NOT NULL,
	width INTEGER NOT NULL,
	height INTEGER NOT NULL,
	pixel_x_size DOUBLE NOT NULL,
	pixel_y_size DOUBLE NOT NULL, "geometry" POLYGON) ;

	INSERT INTO base.base_metadata 
	SELECT * FROM base250_metadata
	WHERE ROWID = 0 ;

	CREATE TABLE base.base_rasters (
	id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
	raster BLOB NOT NULL) ;
COMMIT ;

BEGIN ;
	INSERT INTO base.base_metadata 
		( "source_name", "tile_id", "width", "height", "pixel_x_size", "pixel_y_size", "geometry")
	SELECT "source_name", "tile_id", "width", "height", "pixel_x_size", "pixel_y_size", "geometry"
	FROM base250_rm
	ORDER BY ROWID	;

	INSERT INTO base.base_rasters (raster) SELECT raster FROM base250_rm ;
COMMIT ;

BEGIN ;
	INSERT INTO base.base_metadata 
		( "source_name", "tile_id", "width", "height", "pixel_x_size", "pixel_y_size", "geometry")
	SELECT "source_name", "tile_id", "width", "height", "pixel_x_size", "pixel_y_size", "geometry"
	FROM base500_rm
	ORDER BY ROWID	;

	INSERT INTO base.base_rasters (raster) SELECT raster FROM base500_rm ;
COMMIT ;

BEGIN ;
	INSERT INTO base.geometry_columns
		("f_table_name", "f_geometry_column", "type", "coord_dimension", "srid", "spatial_index_enabled")
	SELECT "f_table_name" AS base_metadata, "f_geometry_column", "type", "coord_dimension", "srid", "spatial_index_enabled"
	FROM geometry_columns
	WHERE ROWID = 1
	ORDER BY ROWID ;

       	CREATE TABLE base.idx_base_metadata_geometry AS
	SELECT * FROM idx_base250_metadata_geometry
	ORDER BY ROWID ;

	CREATE TABLE base.idx_base_metadata_geometry_node AS
	SELECT * FROM idx_base250_metadata_geometry_node
	ORDER BY ROWID ;

	CREATE TABLE base.idx_base_metadata_geometry_parent AS
	SELECT * FROM idx_base250_metadata_geometry_parent
	ORDER BY ROWID ;

	CREATE TABLE base.idx_base_metadata_geometry_rowid AS
	SELECT * FROM idx_base250_metadata_geometry_rowid
	ORDER BY ROWID ;
COMMIT ;



Maggiori informazioni sulla lista Gfoss