Composing raster tiles?

thiemo at gelassene-pferde.biz thiemo at gelassene-pferde.biz
Thu Nov 7 13:25:53 PST 2024


Hi

In my project  
https://sourceforge.net/p/treintaytres/code/HEAD/tree/trunk/code_files/data_storage/ I have the  
table

TABLE_SCHEMA	TABLE_NAME	DATA_TYPE	TYPE_NAME	COLUMN_NAME
treintaytres	topo_files␟t	1111		uuid		id
treintaytres	topo_files␟t	93		timestamptz	entry_pit
treintaytres	topo_files␟t	1111		uuid		source_id
treintaytres	topo_files␟t	12		text		file_name
treintaytres	topo_files␟t	1111		raster		tile
treintaytres	topo_files␟t	93		timestamptz	file_creation_pit
treintaytres	topo_files␟t	12		text		file_hash

TILE contains topographical height raster data from OpenTopography.  
They are from different regions, let's say, some tiles cover  
Switzerland, some cover New Zealand. I want to create slope and other  
data from the height data and I have some questions I hope you can  
answer or point me to answers.

a) Is it more efficient to convert the raster to vector data and  
calculate on the those than to calculate directly on the raster?

b) To my understanding, if I calculate the slope on a raster tile, the  
slope,… of the borders will have accuracy problems. My I idea, was to  
"stitch" a tile with its direct neighbours, calculate on the composed  
tile, and either save a cropped calculated composed tile to its  
original dimension or save the calculated composed tile as is,  
probably the latter.
Can I compose as follows?
with RASTER_NEIGHBORS as (         select R1.TILE   as CURRENT_TILE
                                          ,R2.TILE   as NEIGHBOR_TILE
                                          ,R1.ID     as CURRENT_ID
                                      from TOPO_FILES␟T R1
                           left outer join TOPO_FILES␟T R2
                                        on ST_Touches(R1.TILE
                                                     ,R2.TILE)
                                        or ST_Intersects(R1.TILE
                                                        ,R2.TILE)
                                     where TRUE
                                       --and R1.ID =  
'6b8ca53a-bb5f-4c2b-a9c9-94b6a706e9b0'
                                       and TRUE)
    ,NION as (select CURRENT_TILE as TILE
                    ,CURRENT_ID
                from RASTER_NEIGHBORS
              union
              select NEIGHBOR_TILE as TILE
                    ,CURRENT_ID
                from RASTER_NEIGHBORS)
   select ST_Union(TILE) as COMPOSED_TILE
         ,CURRENT_ID
     from NION
group by CURRENT_ID;

c) Finally, I want to select all the areas where slope, TRI,… conform  
certain criteria and have a minium surface size. Do I do it this  
better on vector data and do I need to do this on data composed of all  
the contiguous areas?

I would be grateful for any nudge into the right direction. Maybe URLs  
with samples.

Kind regards

Thiemo



More information about the postgis-users mailing list