Changes between Version 15 and Version 16 of GoogleSummerCode


Ignore:
Timestamp:
Feb 16, 2014, 3:38:04 PM (10 years ago)
Author:
jorgearevalo
Comment:

Updated the page following these advices http://en.flossmanuals.net/GSoCMentoring/making-your-ideas-page/

Legend:

Unmodified
Added
Removed
Modified
  • GoogleSummerCode

    v15 v16  
    44
    55== PostGIS Raster ==
    6 [wiki:WKTRasterGSoC Raster Summer of Code Page]
     6'''1) Implement write support for the PostGIS raster GDAL driver.'''
     7
     8 Mentor: Jorge Arevalo (jorgearevalo at libregis.org) or David Zwarg.
     9
     10 A [http://www.gdal.org/ GDAL] driver allows reading/writing of raster (or images) data from/to formats like TIFF, PNG or JPEG.
     11
     12 The current GDAL PostGIS raster driver supports reading of PostGIS rasters objects from a PostgreSQL/PostGIS database but does not support writing. The project includes proposing a driver writer design and implementing it. You will familiarize yourself with GDAL-OGR development (one of the most used open source geospatial package), geospatial imagery concepts, open source development tools and code in C.
     13
     14Might be able to reuse some logic already present in the packaged PostGIS raster2pgsql loader.
     15
     16More information about GDAL PostGIS Raster driver [http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html here]
     17
     18'''2) Implement a set of geometry to raster functions'''
     19
     20    Mentor: Not decided yet
     21
     22    With the ability to store geometries and rasters in postgis, there is now a gap to fill by implementing geometry to raster algorithms to allow transition from one type to the other.
     23
     24    1) '''ST_Interpolate''' should be an aggregate taking a set of points (e.g. filtered lidar points) or line geometries (e.g. digitized topo lines) and their associated values and returning a raster representing a surface interpolated from those values. There are numerous methods of [http://en.wikipedia.org/wiki/Interpolation interpolation] and it would nice to have a generic method so we can use all of them, but we’re first targeting [http://en.wikipedia.org/wiki/Bilinear_interpolation bilinear interpolation], which will fill most needs and lay the ground for other methods. For reference, you might want to check an implementation in [http://apps.nrbook.com/empanel/index.html Numerical Recipes (chap. 3)] or in [http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Interpolation/Chapter_main.html#Section_68.3 CGAL]. Converting a point table to a TIN and then to a raster is also a way to go. A Delaunay triangulation can be produced with the [http://www.cs.cmu.edu/~quake/triangle.html Triangle library] (copyright issues should be checked first). See also [http://postgis.17.n6.nabble.com/Voronoi-Dalaunay-function-again-td3522575.html here] and [http://postgis.17.n6.nabble.com/Voronoi-tessellation-td4549913.html here].
     25
     26
     27    2) '''ST_AsDensity''' takes a point or line geometry coverage and first assign a count of those features to every pixels of a raster coverage and then apply a smoothing filter (using the existing one raster version of neighbour ST_MapAlgebra). [http://www.spatialanalysisonline.com/output/html/Pointdensity.html Density functions]  allow summarizing or simplifying a point or line dataset.
     28
     29    3) '''ST_Distance''' takes a point or a geometry coverage and compute a raster representing the distance to the nearest geometry. Another function ST_CostDistance() compute the smallest distance to the geometry following a cost raster. This project was [http://trac.osgeo.org/postgis/wiki/PostGIS_Raster_SoC_Idea_2012/Distance_Analysis_Tools proposed by Qing Liu and accepted by the GSoC program].
    730
    831== PostGIS geometry ==
    9 #2259 ST_Voronoi -- GEOS Voroni is implemented (in GEOS 3.5), needs some testing and integration with PostGIS 2.2 [http://trac.osgeo.org/geos/ticket/627 GEOS Voronoi was done GEOS GSOC 2013]
    1032
    11  
    12 #2192 ST_Split add tolerance option
     33'''1) Implementation of ST_Voronoi function in PostGIS'''
    1334
    14 #2178 ST_Summary display SRID
     35Mentor: not decided yet[[BR]]
     36
     37Skills required: C/C++, PL/pgSQL, knowledge of GEOS and PostGIS libraries, knowledge of Voronoi algorithm
     38
     39As Voronoi porting from JTS to GEOS was done in GEOS GSoC 2013, this functionality should be tested in order to have an implementation of ST_Voronoi function in PostGIS 2.2. Check #2259 for more information
     40
     41
     42'''2) Add tolerance option to ST_Split function'''
     43
     44Mentor: not decided yet[[BR]]
     45
     46Skills required: C/C++, PL/pgSQL, knowledge of PostGIS library
     47
     48ST_Split does not work well when splitting a line by a point. Consider the following example where the line is not split even though the blade is supposed to be a point on the line:
     49
     50
     51{{{
     52SELECT ST_AsText((ST_Dump(ST_Split(lin.geom, ST_Line_Interpolate_Point(lin.geom, 0.5)))).geom) AS geom
     53FROM (SELECT ST_GeomFromText('LINESTRING(604630.408 5792499.778,604623.849 5792500.886)') AS geom) AS lin
     54}}}
     55
     56For the case of a line split by a point some kind of tolerance parameter would help. Until now I it is necessary first to ST_Snap your line to that interpolated point before splitting it by the point, which is not straightforward. Check #2192 fore more information.
     57
    1558
    1659== PostGIS Topology ==
    17 #2074 ST_EstimatedExtent for topology
    1860
    19 #2103 Ability to load topogeoms using shp2pgsql
     61'''1) Implement ST_EstimatedExtent function for topology'''
    2062
    21 #2144 totopoGeom have an extra arg to prevent addition of primitives to topology
     63Mentor: not decided yet[[BR]]
     64
     65Skills required: C/C++, PL/pgSQL, knowledge of PostGIS and PostGIS topology
     66
     67When the schema.table.col passed to st_estimated_extent refers to a layer registered in topology.layers the function could do something smart to return an estimate of what's the layer extent. It currently throws an exception due to "null statistics" for the table/column.
     68
     69Check #2074 for more information.
     70
     71'''2) Implement ability to load topogeoms using shp2pgsql'''
     72
     73Mentor: not decided yet[[BR]]
     74
     75Skills required: C/C++, PL/pgSQL, knowledge of PostGIS and PostGIS topology
     76
     77In writing chapters of the book, one exercise is to load the data with shp2pgsql and then a second step to load into a specific topology. Aside from speed issues, we could just go straight to a topogeom column much like we do with geography is -G is chosen. This would require another switch for topology name and name of topology. The only tricky part is that for the toTopogeom calls we need the generated layer id, which would require a connection to the database to get unless we have a lookup function of some sort that can lookup the layerid based on topo column table/name.
     78
     79Check #2103 for more information
     80
     81
     82'''3) Add an extra arg to toTopoGeom function to prevent addition of primitives to topology'''
     83
     84Mentor: not decided yet[[BR]]
     85
     86Skills required: C/C++, PL/pgSQL, knowledge of PostGIS and PostGIS topology
     87
     88The scenario: You are the master maintainer of a topology for say a city or something and have meticulously laid out the topology that should account for all department topogeometry needs.
     89
     90Some reckless person in department A, comes by and creates a topogeometry with toTopoGeom because his/her topogeometry which should have snapped to existing edges, did not. Now you have extra annoying nodes in your topology. That reckless person may very well be you. You want the totopoGeom not to do you favors by creating new primitives if you know all the topos you are adding should be able to use the edges,nodes, and faces already existing in your topology.
     91
     92So after discussion, proposed solution is to add an extra proto to toTopoGeom that prevents creation of new primitives and if a topogeometry can't be created without adding a primitive, it should throw an error. So basically: change this existing proto:
     93
     94
     95{{{
     96toTopoGeom(geometry geom, varchar toponame, integer layer_id, float8 tolerance);
     97
     98}}}
     99
     100to this other one
     101
     102
     103{{{
     104toTopoGeom(geometry geom, varchar toponame, integer layer_id, float8 tolerance, allow_primitive_creation = true);
     105
     106}}}
     107
     108Check #2144 for more information.
     109
    22110
    23111== PostGIS pgsql2shp dumper ==
    24 #2045 pgsql2shp should not require temp table creation privs when dumping a query
     112
     113'''1) pgsql2shp should not require temp table creation privs when dumping a query'''
     114
     115Mentor: not decided yet[[BR]]
     116
     117Skills required: C/C++, knowledge of PostGIS library
     118
     119If you can't create a temporary table, then you can't get a shapefile out of a query using pgsql2shp. You can by using ogr2ogr.
     120
     121Check #2045 for more information
    25122
    26123== PostGIS shp2pgsql /shp2pgsql-gui loader ==
    27 #2236 shp2pgsql -d: should emit "DROP TABLE IF EXISTS"?
    28124
    29 #528 Command line options for shp2pgsql-gui in the About box
     125'''1) Modify shp2pgsql to emit DROP TABLE IF EXISTS insted of just DROP TABLE'''
    30126
    31 #2473 shp2pgsql-gui tries to create spatial index when only dbf available
     127Mentor: not decided yet[[BR]]
     128
     129Skills required: C/C++, knowledge of PostGIS library
     130
     131Just when -d flag is passed
     132
     133Check #2236 for more information
     134
     135'''2) Specify command line options for shp2pgsql-gui in the About box'''
     136
     137Mentor: not decided yet[[BR]]
     138
     139Skills required: C/C++, GTK, knowledge of PostGIS library
     140
     141Right now a user has no way of knowing what options are available in shp2pgsql-gui.
     142
     143Check #528 for more information.
     144
     145'''3) Modify shp2pgsql-gui to avoid attempt of spatial index creation when only dbf available'''
     146
     147Mentor: not decided yet[[BR]]
     148
     149Skills required: C/C++, GTK, knowledge of PostGIS library
     150
     151If you try to load shapefiles with only dbf available and select spatial index option, you will see an error
     152
     153Check #2473 for more information shp2pgsql-gui tries to create spatial index when only dbf available
     154
     155
     156Want more details? Check the [http://wiki.osgeo.org/wiki/Google_Summer_of_Code_2014 OSGeo GSoC 2014 page] or write to the [http://lists.osgeo.org/mailman/listinfo/postgis-devel PostGIS developer list].