Version 24 (modified by 13 years ago) ( diff ) | ,
---|
PostGIS Raster SoC Idea 2012 - Distance Analysis Tools for PostGIS Raster
Mentor: Pierre Racine
Idea:
The idea for this proposed project is to add two spatial analysis functions to PostGIS Raster that
implement two main ways of performing distance analysis: Euclidean distance calculation and
cost-weighted distance calculation.
Euclidean distance function will create a distance surface representing the Euclidean distance from each cell in the source layer to the starting point or the closest source (as designated by user). The basic concepts of the algorithm would be using the center of the source cell to calculate the distance from it to the rest cells in the raster layer or within the user-defined extent.
Cost-weighted distance will create a raster layer representing the accumulative cost distance for each cell to the starting point or the closest source (as designated by user). A cost raster layer will be generated using one or several factor layers representing the impedance of passing through each cell according to user’s criteria. User can also put weights on the input factor layers to represent different levels of importance for those factors. Factors such as: elevation, slope, orientation, land use / land cover type; vehicle speed, accessibility; and a binary map layer could also be used as a mask for defining geographic extent or as a filter for the output cost layer. The accumulative cost values will be then assigned to each cell representing the cost per unit distance for moving through this cell.
GSoC 2012 Proposal:
http://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2012/kya_na/1
Weekly Reports
- Week 1 Report (May 21st - May 25th)
- Week 2 Report (May 28th - June 1st)
- Week 3 Report (June 4th - June 8th)
- Week 4 Report (June 11th - June 15th)
Week 1 Report
What did you get done this week?
- Compiled PostGIS 2.0 sucessfully.
- Loaded raster data into PostgreSQL and practiced some query by finishing the raster/vector tutorial.
- Wrote an analysis of how Euclidean distance and Cost-weighted distance are computed in ArcGIS and GRASS.
- Setup wiki page.
What do you plan on doing next week?
- Learn more about PostGIS Raster concepts and functions
- Write an analysis of how Euclidean distance and Cost-weighted distance are computed in Oracle
- Start to write a proposal on how to adopt the concepts and algorithms in PostGIS.
Are you blocked on anything?
- As of now I was not blocked on anything yet, but working in a spatial database is something new and challenging to me. I will need to read and reserch more about it.
- However, it took me some time to understand how raster coverage is stored in PostGIS, and how Raster type works.
My Analysis Reports
Week 2 Report
What did you get done this week?
- Read Documents and Pierre Racine's presentations on PostGIS Raster; Learned more about the raster data storage and manipulation in PostGIS
- Read Oracle Spatial Documents on GeoRaster; Learned about raster data storage in Oracle.
What do you plan on doing next week?
- Learn more about PostGIS Raster development
- Write a comparison of raster data storage and manipulation in PostgreSQL and Oracle
- Write a proposal on how to adopt the concepts and algorithms of distance calculation in PostGIS.
Are you blocked on anything?
- It seems that Oracle Sptial dosenot provide distance analysis functions for GeoRaster data. Please let me know if I missed it.
However, by reading documents of GeoRaster, I got a better understanding of the raster data storage in spatial database. So I feel it would be helpful for me to write an analysis to compare the concepts of raster data storage and manipulation with PostGIS Raster and Oracle Spatial GeoRaster.
Comment from Mentor:
I really think we want to avoid having to produce an intermediate raster of sources. PostGIS is strong on raster/vector interaction and I really don't see why someone would prefer to provide sources as raster. The sources should come from a table of point. Now this raise a certain number of issues: -What if the table contains more than one point? -What if some of those points are outside the raster extent? -Another issue is: What if the raster I want to produce does not fit into the PostgreSQL maximum field size? These are the kind or difficulties one encounters when working in a database. Think about large tiled coverage, Delaunay triangulation, aggregate functions and all the combinatory of "small/very large number of point" and "small/very large raster coverage". Ideally we want to provide a solution working for every limit cases.
Week 3 Report
What did you get done this week?
- Wrote a comparison of raster data storage and manipulation in PostgreSQL and Oracle
- Wrote a proposal on how to adopt the concepts and algorithms of Euclidean distance calculation in PostGIS.
What do you plan on doing next week?
- Write a proposal on how to adopt the concepts and algorithms of Cost-weighted distance calculation in PostGIS
Are you blocked on anything?
- Based on the feed back I got from Pierre last week, I agreed that we want to avoid having to produce an intermediate raster of the source point data. Since PostGIS Raster provide the capability of seamless vector-raster interactions, it is preferable that we expect the input source point data to be a vector layer, which is stored in PostgreSQL as a table of points with geomegry. The concepts of the distance calculation in ArcGIS and GRASS were all based on raster source data (ArcGIS will first rasterize the vector layer if necessary). So I was stucked at this point on how to avoid generating this intermediate raster layer if we want the source data to be vector points.