[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgis-users
Subject:    Re: [postgis-users] loading many similar shapefiles
From:       Martin Davis <mbdavis () refractions ! net>
Date:       2009-11-24 17:31:48
Message-ID: 4B0C1884.1080608 () refractions ! net
[Download RAW message or body]

You can easily do this with JEQL.

http://tsusiatsoftware.net/jeql/main.html

A script to read a shapefile and load it into PostGIS would look like 
the following.  You can choose whatever columns you want to load by 
giving their names.

====================================================
ShapefileReader tbl file: "data.shp";

cities = SELECT CITY_ID, NAME, MAPLABEL, SHADE, Shape_area, Shape_len, 
Geom.toWKT(GEOMETRY) AS geom FROM tbl;

DbWriter cities
    class: "org.postgresql.Driver"
    url: "jdbc:postgresql://host:1111/db-instance"
    user: "user"
    password: "pwd"
    sql: $"INSERT INTO Cities ( 
CITY_ID,NAME,MAPLABEL,SHADE,Shape_area,Shape_len,geom ) VALUES 
(?,?,?,?,?,?,ST_GeometryFromText(?,2927))"
    batchSize: 1000
    commitSize: 1000;
====================================================

P Kishor wrote:
> I have many shapefiles that are conceptually identical in structure,
> except a couple of columns in each file are named differently. These
> columns are unimportant.
> 
> How can I load all these files in the same table without the offending columns?
> 
> # generate the create table and insert commands
> shp2pgsql -s 4269 -c file1 table > load.sql
> 
> # generate the insert commands for subsequent files
> shp2pgsql -s 4269 -a file2 table >> load.sql
> shp2pgsql -s 4269 -a file3 table >> load.sql
> ..
> 
> The above commands generate INSERT statements like so --
> 
> INSERT INTO "table" (
> "area",
> "perimeter",
> "file1_",
> "file1_i",
> the_geom
> ) VALUES (
> '2.29080994500086E-04',
> '6.34477469815224E-02',
> '0106000020AD100000010000000103000020AD100000010000000D000000A4552DE928EA55C0C6F99B5 \
> 088443E404582A966D6E955C050C8CEDBD8443E40187D0569C6E955C02B508BC1C3443E403DEFC682C2E \
> 955C0BB4560AC6F443E40EB8D5A61FAE955C0A6D24F38BB413E402907B30930EA55C0503750E09D403E4 \
> 0C28A53AD85EA55C0A8716F7EC3403E403D997FF44DEB55C058FFE7305F423E402C4833164DEB55C00F4 \
> 240BE84423E40DAAD65321CEB55C0AFCF9CF529433E40D48041D2A7EA55C046274BADF7433E40FB58C16F43EA55C045F295404A443E40A4552DE928EA55C0C6F99B5088443E40'
>  );
> 
> 
> I don't want file1_ and file1_i and their corresponding values. Is
> there a way to specify which columns to load?
> 
> 
> 
> 

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic