[postgis-users] Querying Multiple Rasters

Jayson Gallardo jaysontrades at gmail.com
Mon Aug 5 09:13:43 PDT 2013


Thanks for your input. I'll try to take a look at your suggestions. I would
like to say that I have done some tuning to postgres. Our idea for
downloading continental US ned data may be the wrong way to go anyways.
Also, forgive me if I seem ignorant to some aspects; I'm a non-traditional
college student working for USDA on campus as a programmer, and I'm
learning everything as I go. I hope to get to the point where I am on level
footing with you all.


On Wed, Jul 31, 2013 at 2:51 AM, Rémi Cura <remi.cura at gmail.com> wrote:

> Sorry for the double post.
> One last thing :
> about your query:
> you do a ST_clip ( st_union )
> You could try a ST_union(st_clip) .
> If you have a lot of big rasters it may be faster (??).
>
> Cheers,
> Rémi-C
>
>
> 2013/7/31 Rémi Cura <remi.cura at gmail.com>
>
>> Hey
>> Sorry to bother you with technical details, but your query being slow may
>> come from hardware, OS, postgres, postgis, bad partitionning, bad query,
>> bad index,...
>> So can you give more details please?
>>
>> What are your versions (OS,postgres, postgis, gdal).
>> What is the on disk size of a child table (see statistics)
>> How many rows are there in a child table?
>> I'm guessing you have an index about envelope of each row.
>>
>> What says a EXPLAIN ANALYZE of your query ?
>>
>>
>> Quick check list :
>>
>> Hardware
>> [_] Have you two separate hard disk (one for sys, one for data) / Is your
>> disk the bottleneck?
>> OS
>> [_] What is your system doing when computing a query (look for process,
>> memory usage, disk usage)
>> [_] Is you OS caching working?
>> [_] if linux, have you tun your kernel max memory?
>>
>> Postgres
>> [_] Have you tuned postgresql.conf conf (very restrictive by default :
>> MUST DO).
>> Postgis
>> [_] ...no idea yet...
>> Partitionning
>> [_] Are your constraints on child table sufficently restrictive to avoid
>> querrying a lots of child table
>> [_] Are your constraints used by query planner (explain analyze) .
>> If you want to be sure, you can manually explicit it for test purpose :
>> adding to WHERE clause "AND st_coveredby(st_convexhull(rast), '*
>> ...truncated...*'::geometry)) = TRUE
>> Query
>> [_] I'm guessing you test your query in pgadmin before using python : you
>> could start from minimal query (find rasters in a clipping zone directly
>> querying a child table), then make it grow (find rasters in father
>> table,then  compute new raster from previous result, etc), watching how the
>> processing time grows in the process.
>> Also you should know the computational price of doing ST_AsGDALRaster(ST_CLIP(ST_Union(rast),
>> that is separate the time to find "rast" intersecting your clipping zone,
>> and the time to compute a union and the ST_AsGdalRaster function.
>>
>> [_] As suggested, and if you want to avoid sending another query first to
>> compute our clipping box, you could use CTE (IE a "WITH" statement), or
>> subquery. This way you avoid computing it twice :
>> WITH my_clipping_geom AS (
>> SELECT ST_Transform(ST_GeomFromText( wkt, map_srs,table_srs)) AS geom
>> LIMIT 1
>> )
>> SELECT ST_AsGDALRaster(ST_CLIP(ST_Union(rast), my_clipping_geom.geom ,raster_type)
>>
>> FROM table_name, my_clipping_geom
>> WHERE ST_Intersects(rast,my_clipping_geom.geom)
>>
>> Index
>> [_] You use ST_Intersects, therefore you must have an index to speed it
>> up.
>> I'm guessing you have one on bounding box of each raster (each line), is
>> it used (explain analyze : index scan)
>>
>> Don't lose hope, as the whole system can be severly speeded up by tuning
>> and small change may have big effects.
>>
>> Cheers,
>> Rémi-C
>>
>>
>>
>> 2013/7/30 Jayson Gallardo <jaysontrades at gmail.com>
>>
>>> Thanks for the help again. There will be extensive testing before we go
>>> into production. Right now, we're just trying to get a prototype up and
>>> running. I might need to look into querying a web service for clipped NED
>>> data...
>>>
>>>
>>> On Tue, Jul 30, 2013 at 12:01 PM, Bborie Park <dustymugs at gmail.com>wrote:
>>>
>>>> That should work if you're querying against the subparent instead of
>>>> the parent. You'll need to test though...
>>>>
>>>> -bborie
>>>>
>>>>
>>>> On Tue, Jul 30, 2013 at 9:59 AM, Jayson Gallardo <
>>>> jaysontrades at gmail.com> wrote:
>>>>
>>>>> What if I create subparents for each state, and set an extent
>>>>> constraint on each subparent? Would that help? Or would the query still
>>>>> check the constraint for each child of each subparent?
>>>>>
>>>>>
>>>>> On Tue, Jul 30, 2013 at 11:54 AM, Bborie Park <dustymugs at gmail.com>wrote:
>>>>>
>>>>>> 3m NED data doesn't exist for the continental US (at least from
>>>>>> USGS). But if you were to do so, you could consider a different scheme...
>>>>>>
>>>>>> 1. All NED files are stored as out-db rasters
>>>>>> 2. Each table is for one state, though in some situations you may
>>>>>> want more than one table per state (e.g. Texas, California).
>>>>>>
>>>>>> That should help you keep the # of partitions to a minimum and reduce
>>>>>> the size of each partition.
>>>>>>
>>>>>> -bborie
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 30, 2013 at 9:42 AM, Jayson Gallardo <
>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>
>>>>>>> I was reading the page on partitioning, and the very last line says*"
>>>>>>> **Partitioning using these techniques will work well with up to
>>>>>>> perhaps a hundred partitions; don't try to use many thousands of
>>>>>>> partitions." *I'm already up to ~400 tables in this partitioning
>>>>>>> scheme just for Arkansas and Iowa... Is this a good idea? Would there be a
>>>>>>> better way to do the entire continental US?
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jul 30, 2013 at 11:39 AM, Bborie Park <dustymugs at gmail.com>wrote:
>>>>>>>
>>>>>>>> The quick and dirty approach is to have a query before that query
>>>>>>>> that transforms the WKT.
>>>>>>>>
>>>>>>>> Something like "SELECT ST_AsEWKT(ST_Transform(...))"
>>>>>>>>
>>>>>>>> -bborie
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Jul 30, 2013 at 9:35 AM, Jayson Gallardo <
>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I suppose I could do that in my script. How should I go about
>>>>>>>>> that? My process is as follows:
>>>>>>>>>
>>>>>>>>>    - User selects area of interest on a map (openlayers)
>>>>>>>>>    - User clicks submit, and python script is called with the WKT
>>>>>>>>>    passed as an argument
>>>>>>>>>    - Python script queries the database, which then outputs the
>>>>>>>>>    raster
>>>>>>>>>    - Raster is processed through a library
>>>>>>>>>    - Processed raster is displayed as an overlay on the map
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Jul 30, 2013 at 11:31 AM, Bborie Park <dustymugs at gmail.com
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> Are you able to transform the wkt before passing it to the sql?
>>>>>>>>>> Partitioning only works on constant values, not values that need
>>>>>>>>>> processing, e.g. ST_Transform(ST_GeomFromText(\'%s\',%i),%i)).
>>>>>>>>>>
>>>>>>>>>> -bborie
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Jul 30, 2013 at 9:25 AM, Jayson Gallardo <
>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Here's the constraints:
>>>>>>>>>>>   CONSTRAINT dem_elevation_n33w092_pkey PRIMARY KEY (rid ),
>>>>>>>>>>>   CONSTRAINT enforce_height_rast CHECK (st_height(rast) = 100),
>>>>>>>>>>>   CONSTRAINT enforce_max_extent_rast CHECK
>>>>>>>>>>> (st_coveredby(st_convexhull(rast), '*...truncated...*
>>>>>>>>>>> '::geometry)),
>>>>>>>>>>>   CONSTRAINT enforce_num_bands_rast CHECK (st_numbands(rast) =
>>>>>>>>>>> 1),
>>>>>>>>>>>   CONSTRAINT enforce_out_db_rast CHECK
>>>>>>>>>>> (_raster_constraint_out_db(rast) = '{f}'::boolean[]),
>>>>>>>>>>>   CONSTRAINT enforce_pixel_types_rast CHECK
>>>>>>>>>>> (_raster_constraint_pixel_types(rast) = '{32BF}'::text[]),
>>>>>>>>>>>   CONSTRAINT enforce_same_alignment_rast CHECK
>>>>>>>>>>> (st_samealignment(rast, '*...truncated...*'::raster)),
>>>>>>>>>>>   CONSTRAINT enforce_scalex_rast CHECK
>>>>>>>>>>> (st_scalex(rast)::numeric(16,10) = 0.000092592592593::numeric(16,10)),
>>>>>>>>>>>   CONSTRAINT enforce_scaley_rast CHECK
>>>>>>>>>>> (st_scaley(rast)::numeric(16,10) = (-0.000092592592593)::numeric(16,10)),
>>>>>>>>>>>   CONSTRAINT enforce_srid_rast CHECK (st_srid(rast) = 4269),
>>>>>>>>>>>   CONSTRAINT enforce_width_rast CHECK (st_width(rast) = 100)
>>>>>>>>>>>
>>>>>>>>>>> and my python script:
>>>>>>>>>>>
>>>>>>>>>>> wkt = sys.argv[1]  # Polygon shape in WKT format
>>>>>>>>>>> raster_type = 'GTiff'
>>>>>>>>>>> table_name = 'dem_elevation'
>>>>>>>>>>> map_srs = 900913
>>>>>>>>>>> table_srs = 4269
>>>>>>>>>>> sql_text = 'SELECT ST_AsGDALRaster(ST_CLIP(ST_Union(rast),
>>>>>>>>>>> ST_GeomFromText(\'%s\',%i)),\'%s\') FROM "%s" WHERE
>>>>>>>>>>> ST_Intersects(rast, ST_Transform(ST_GeomFromText(\'%s\',%i),%i))'
>>>>>>>>>>>  % (wkt, map_srs, raster_type, table_name, wkt, map_srs,
>>>>>>>>>>> table_srs)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Jul 30, 2013 at 11:12 AM, Bborie Park <
>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Jayson,
>>>>>>>>>>>>
>>>>>>>>>>>> Can you share one of the queries? Also, what check constraints
>>>>>>>>>>>> are you using?
>>>>>>>>>>>>
>>>>>>>>>>>> -bborie
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Jul 30, 2013 at 7:49 AM, Jayson Gallardo <
>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> So, I used Explain on my SELECT statement, and whether
>>>>>>>>>>>>> constraint_exclusion is on or off, it seems to spit out the same number of
>>>>>>>>>>>>> rows in the query plan. Is there something I need to do for my table
>>>>>>>>>>>>> constraints so that it doesn't do a check on every table I have loaded?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tue, Jul 30, 2013 at 9:20 AM, Jayson Gallardo <
>>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Quick follow up question to my situation... I recently loaded
>>>>>>>>>>>>>> 3m resolution NED for Iowa. I have them loaded to one table per source
>>>>>>>>>>>>>> tile, and have them inheriting from the parent table that the Arkansas NED
>>>>>>>>>>>>>> is inheriting from. Ever since, however, my database seems to be running
>>>>>>>>>>>>>> pretty slow. I've run a full vacuum on the data, and there are constraints
>>>>>>>>>>>>>> on each table.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> How can I be sure that when I query the parent database that
>>>>>>>>>>>>>> it's not querying every single table?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 3:14 PM, Bborie Park <
>>>>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I'm just glad to help. Feel free to post your experience,
>>>>>>>>>>>>>>> feedback, issues and/or wishes on the mailing-list.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -bborie
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 1:10 PM, Jayson Gallardo <
>>>>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Oh, okay. Yeah you're right about it taking time. I wrote a
>>>>>>>>>>>>>>>> python script to generate the raster2pgsql call with the appropriate table
>>>>>>>>>>>>>>>> name, so I can just let it run while I do other things. I really appreciate
>>>>>>>>>>>>>>>> your help on this. I googled your name and I see you're a pretty busy
>>>>>>>>>>>>>>>> person, so I'm glad you're taking the time to answer my questions.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 3:05 PM, Bborie Park <
>>>>>>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> No. I'm suggesting it later as it does take time and
>>>>>>>>>>>>>>>>> separates operations. Get everything imported first and then add
>>>>>>>>>>>>>>>>> constraints.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Having said that, you can do it all at once if so
>>>>>>>>>>>>>>>>> desired... just preference depending on volume of import data.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -bborie
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 1:02 PM, Jayson Gallardo <
>>>>>>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Okay, is there a specific reason why? As your link
>>>>>>>>>>>>>>>>>> states: "raster2pgsql loader uses this function to
>>>>>>>>>>>>>>>>>> register raster tables". Are you saying I should specify constraints that
>>>>>>>>>>>>>>>>>> will be similar across all tables?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 2:53 PM, Bborie Park <
>>>>>>>>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I'd suggest adding constraints after the fact through
>>>>>>>>>>>>>>>>>>> SQL instead of letting raster2pgsql do it.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> http://www.postgis.net/docs/manual-2.0/RT_AddRasterConstraints.html
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> -bborie
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 12:51 PM, Jayson Gallardo <
>>>>>>>>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> So based on the link you provided, and what else I've
>>>>>>>>>>>>>>>>>>>> gathered, I first create a parent table:
>>>>>>>>>>>>>>>>>>>>  CREATE TABLE dem_elevation
>>>>>>>>>>>>>>>>>>>> (
>>>>>>>>>>>>>>>>>>>>   rid integer NOT NULL PRIMARY KEY
>>>>>>>>>>>>>>>>>>>>   rast raster,
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> );
>>>>>>>>>>>>>>>>>>>>  Then I run raster2pgsql on all the downloaded
>>>>>>>>>>>>>>>>>>>> elevation data, sending each input tile to its own table, ie.
>>>>>>>>>>>>>>>>>>>> dem_elevation_n36w091. Then alter table to inherit from parent:
>>>>>>>>>>>>>>>>>>>> ALTER TABLE dem_elevation_n36w091 INHERIT dem_elevation;
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> With raster2pgsql taking care of setting the
>>>>>>>>>>>>>>>>>>>> constraints for each table. Now, I can just query the parent table
>>>>>>>>>>>>>>>>>>>> dem_elevation to get what I need?
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 2:33 PM, Bborie Park <
>>>>>>>>>>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> I use the USGS NED 10 meter for California with one
>>>>>>>>>>>>>>>>>>>>> table for each input raster. In the partitioned table scheme, data tables
>>>>>>>>>>>>>>>>>>>>> inherit from a template (parent) table. Queries run on the parent table
>>>>>>>>>>>>>>>>>>>>> access the inherited tables.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> -bborie
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 11:56 AM, Jayson Gallardo <
>>>>>>>>>>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Yes, it's usgs ned. And I initially went with one
>>>>>>>>>>>>>>>>>>>>>> table for each input tile, but I didn't know how to join (or union) them
>>>>>>>>>>>>>>>>>>>>>> together for my query.
>>>>>>>>>>>>>>>>>>>>>>  On Jul 23, 2013 1:14 PM, "Bborie Park" <
>>>>>>>>>>>>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Can you describe your elevation dataset? Is it USGS
>>>>>>>>>>>>>>>>>>>>>>> NED? At which resolution (10 meter, 3 meter?)?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> As for table partitioning...
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> http://www.postgresql.org/docs/9.0/static/ddl-partitioning.html
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> You'll probably partition spatially, though an easy
>>>>>>>>>>>>>>>>>>>>>>> solution is to have a table for each input raster file.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> -bborie
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 11:05 AM, Jayson Gallardo <
>>>>>>>>>>>>>>>>>>>>>>> jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Thanks for responding. Could you outline how I
>>>>>>>>>>>>>>>>>>>>>>>> would go about doing a partitioned table structure? My only concern with
>>>>>>>>>>>>>>>>>>>>>>>> tile size is processing time. Most of my queries will involve areas of less
>>>>>>>>>>>>>>>>>>>>>>>> than 1 mi^2, and I would clip the data into that shape. I just don't know
>>>>>>>>>>>>>>>>>>>>>>>> where to start! There's not too many resources online/print dealing with
>>>>>>>>>>>>>>>>>>>>>>>> postgis rasters in detail.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 12:57 PM, Bborie Park <
>>>>>>>>>>>>>>>>>>>>>>>> dustymugs at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> You may not need to drop all the constraints when
>>>>>>>>>>>>>>>>>>>>>>>>> adding additional data to the table. You most likely will need to drop is
>>>>>>>>>>>>>>>>>>>>>>>>> the maximum extent constraint. Assuming the input rasters have the same
>>>>>>>>>>>>>>>>>>>>>>>>> scale, skew and SRID as that found in the table, you don't need to drop
>>>>>>>>>>>>>>>>>>>>>>>>> those corresponding constraints.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> If you're going to do the continental US at a fine
>>>>>>>>>>>>>>>>>>>>>>>>> resolution (e.g. 1 meter), you do NOT want to put all the rasters in one
>>>>>>>>>>>>>>>>>>>>>>>>> table. You'll want to use a partitioned table structure and should consider
>>>>>>>>>>>>>>>>>>>>>>>>> a bigger tile size (depending on your hardware).
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> -bborie
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Jul 23, 2013 at 10:43 AM, Jayson Gallardo
>>>>>>>>>>>>>>>>>>>>>>>>> <jaysontrades at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> I've looked and looked, but I have not been able
>>>>>>>>>>>>>>>>>>>>>>>>>> to find an answer to my question. I have downloaded elevation data for the
>>>>>>>>>>>>>>>>>>>>>>>>>> state of Arkansas (in the form of multiple tiles), and used raster2pgsql to
>>>>>>>>>>>>>>>>>>>>>>>>>> upload it into a single table:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> raster2pgsql -I -C -e -F -t 50x50 -l 2,4 n*/grdn*
>>>>>>>>>>>>>>>>>>>>>>>>>> public.dem_elevation | psql -U postgres -d testdb -h localhost -p 5432
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> I did this because I didn't know how to pull the
>>>>>>>>>>>>>>>>>>>>>>>>>> data if they were in separate tables. Now, however I would like to add
>>>>>>>>>>>>>>>>>>>>>>>>>> elevation data for other areas. I tried to just add it to the current
>>>>>>>>>>>>>>>>>>>>>>>>>> table, but that required dropping the constraints which for such a huge
>>>>>>>>>>>>>>>>>>>>>>>>>> amount of data seems to take a long time (I let it run for 24+ hours and it
>>>>>>>>>>>>>>>>>>>>>>>>>> didn't finish). So, my question is, if I load all my rasters as individual
>>>>>>>>>>>>>>>>>>>>>>>>>> tables, how could I run something similar to this query on them all (from a
>>>>>>>>>>>>>>>>>>>>>>>>>> python script):
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> SELECT ST_AsGDALRaster(ST_CLIP(ST_Union(rast),
>>>>>>>>>>>>>>>>>>>>>>>>>> ST_GeomFromText(WKT,900913)),'GTiff') FROM "dem_elevation" WHERE
>>>>>>>>>>>>>>>>>>>>>>>>>> ST_Intersects(rast, ST_Transform(ST_GeomFromText(WKT,900913),4269))
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> My goal, if it's not obvious, is to clip
>>>>>>>>>>>>>>>>>>>>>>>>>> elevation data and export it to a GTiff format and perform some operations
>>>>>>>>>>>>>>>>>>>>>>>>>> on that raster data. Eventually, I would like to put the whole continental
>>>>>>>>>>>>>>>>>>>>>>>>>> US elevation data into my database, so I need to be able to do so, while
>>>>>>>>>>>>>>>>>>>>>>>>>> still being able to query them based on an area of interest the user
>>>>>>>>>>>>>>>>>>>>>>>>>> selects from a map. I started working with PostGIS and Mapserver last
>>>>>>>>>>>>>>>>>>>>>>>>>> month, so please forgive my ignorance on such topics. Thanks in advance
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> postgis-users mailing list
>>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> postgis-users mailing list
>>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> postgis-users mailing list
>>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> postgis-users mailing list
>>>>>>>> postgis-users at lists.osgeo.org
>>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> postgis-users mailing list
>>>>>>> postgis-users at lists.osgeo.org
>>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> postgis-users mailing list
>>>>>> postgis-users at lists.osgeo.org
>>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> postgis-users mailing list
>>>>> postgis-users at lists.osgeo.org
>>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> postgis-users mailing list
>>>> postgis-users at lists.osgeo.org
>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at lists.osgeo.org
>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>
>>>
>>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20130805/f33820d2/attachment.html>


More information about the postgis-users mailing list