Changes between Version 142 and Version 143 of WKTRaster/PlanningAndFunding


Ignore:
Timestamp:
Nov 25, 2011, 1:50:18 PM (12 years ago)
Author:
pracine
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • WKTRaster/PlanningAndFunding

    v142 v143  
    7070 * [http://cvec.ucdavis.edu/ Center for Vectorborne Diseases] at UC Davis (UC): All of Bborie Park time (about 4 months up to june 2011).
    7171
    72 == Development Status ==
     72== RoadMap ==
    7373
    7474Explanation of status markers used in the tables below:
    7575
    76  * '''todo''': The task has not yet been funded. Everything is to do.
    77  * '''funded''': Someone committed some funding or developer time and the task has been assigned to a developper but the task is still to do.
    7876 * '''in-progress''': The task is being implemented.
    7977 * '''pending''': The developer is waiting for other development to continue.
     
    8280 * '''done''': The task is finished.
    8381
    84 
    85 
    86 == Milestones for PostGIS 2.0 ==
    87 
    88 
    89 ||'''Objectives and Tasks'''||'''Coder'''||'''Approx. Schedule'''||'''Time'''||'''Approx. Contribution (US$)'''||'''Status'''||
    90 ||[[BR]]'''Objective 2.0.01 - Being able to get and set the rotation of a raster.''' ([wiki:WKTRaster/SpecificationWorking02 specifications])||||||||||
    91 ||- ST_Rotation(raster)[[BR]]- ST_SetRotation(raster, rotation)||DZ||||2 days||480||done||
    92 ||[[BR]]'''Objective 2.0.02 - Being able to create a raster as the expression of another raster''' ([wiki:WKTRaster/SpecificationWorking02 specifications])||||||||||
    93 ||- ST_MapAlgebra(raster)||JA||||4 weeks||4800||done||
    94 ||[[BR]]'''Objective 2.0.04 - Implement better handling for NULL, ST_IsEmpty, ST_HasNoBand and ST_BandIsNodata rasters''' ([wiki:WKTRaster/SpecificationWorking02 specifications])||||||||||
    95 ||- ST_IsEmpty(raster)[[BR]]- ST_HasNoBand(raster, band)[[BR]]- ST_BandIsNodata(raster, band)||JA||||2 weeks||2400||partially done||
    96 ||[[BR]]'''Objective 2.0.05 - Being able to set and get values for part of a raster''' ([wiki:WKTRaster/SpecificationWorking02 specifications])||||||||||
    97 ||- ST_SetValues(raster)[[BR]]- ST_Clip(raster)||TBD||||2 weeks||2400||todo||
    98 ||[[BR]]'''Objective 2.0.06 - Being able to add a band to a raster ''' ([wiki:WKTRaster/SpecificationWorking02 specifications])||||||||||
    99 ||- ST_AddBand()||PR & JA||||2 weeks||2400||done||
    100 
    101 
    102 == Milestones for Future Versions ==
    103 
    104 
    105 ||'''Objectives and Tasks'''||'''Coder'''||'''Approx. Schedule'''||'''Time'''||'''Approx. Contribution (US$)'''||'''Status'''||
    106 ||[[BR]]'''Objective FV.01 - Being able to return a JPEG, a TIFF or a PNG ''- Done''''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    107 ||- ST_Band(raster, band) -> raster[[BR]]- ST_Reclass(raster|geometry,string) -> same type as first argument[[BR]]- ST_AsGDALRaster(raster, band int, type text, options text) -> bytea[[BR]]- ST_GDALDrivers() -> set of record[[BR]]- ST_AsJPEG(raster, band, quality) -> JPEG as "bytea"[[BR]]- ST_AsTIFF(raster, band, compression) -> TIFF as "bytea"[[BR]]- ST_AsPNG(raster, band) -> PNG as "bytea"||BP||TBD||2 weeks||2400 / !DevTime from UC||done||
    108 ||[[BR]]'''Objective FV.02 - Being able to intersect vector and raster to produce raster.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    109 ||- ST_AsRaster(geometry, pixelsize) -> raster[[BR]]- Changes to ST_Intersection||TBD||TBD||4 weeks||4800||todo||
    110 ||[[BR]]'''Objective FV.03 - Implement all the necessary versions of ST_MapAlgebra.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    111 ||- ST_MapAlgebraExpr()[[BR]]- ST_MapAlgebraFct()[[BR]]- ST_MapAlgebraFctNgb(taking one raster)[[BR]]- ST_MapAlgebraFctNgb(taking one coverage (table))[[BR]]- ST_MapAlgebraExpr(taking two rasters)[[BR]]- ST_MapAlgebraExpr(taking two coverages (tables))[[BR]]- ST_MapAlgebraFct(taking two rasters)[[BR]]- ST_MapAlgebraFct(taking two coverages (tables))||DZ||November 2011||8 weeks||9600||in progress||
    112 ||[[BR]]'''Objective FV.04 - Being able to use "group by" to accumulate tiles to form a new raster.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    113 ||- ST_Union(raster|geometry, raster|geometry, ‘raster’|’geometry’) -> raster/geometry[[BR]]- ST_Accum(raster set|geometry set, ‘raster’|’geometry’) -> raster/geometry||TBD||TBD||2 weeks||2400||todo||
    114 ||[[BR]]'''Objective FV.05 - Being able to reproject a raster'' - Done''''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    115 ||- ST_Transform(raster|geometry, SRID) -> same type as input||BP||||1 week||!DevTime from UC||done||
    116 ||[[BR]]'''Objective FV.06 - Being able todo some base raster operations.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    117 ||- ST_Area(raster|geometry) -> double[[BR]]- ST_ValueCount(raster, value) -> integer'' - done''[[BR]]- ST_ValuePercent(raster, value) -> double precision'' - done''[[BR]]- ST_Resample(raster, pixelsize, method) -> raster[[BR]]- ST_SelectByValue(raster|geometry, ‘expression’) -> same type as first argument[[BR]]- ST_Clip(raster|geometry,geometry) -> same type as first argument[[BR]]- ST_Flip(raster|geometry, ’vertical’|’horizontal’) -> same type as first argument||TBD||||6 weeks||7200||partially done||
    118 ||[[BR]]'''Objective FV.07 - Being able to convert a raster to standards formats.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    119 ||- ST_AsKML(raster|geometry) -> string[[BR]]- ST_AsSVG(raster|geometry) -> string||TBD||||2 weeks||2400||todo||
    120 ||[[BR]]'''Objective FV.08 - Being able to control the validity of a raster.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    121 ||- ST_mem_size(raster|geometry) -> integer[[BR]]- ST_isvalid(raster|geometry) -> boolean||TBD||||1 week||1200||todo||
    122 ||[[BR]]'''Objective FV.09 - Being able to use other major topological operators.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    123 ||- ST_Within(raster|geometry A, raster|geometry B)[[BR]]- ST_Contains(raster|geometry A, raster|geometry B)[[BR]]- ST_Overlaps(raster|geometry, raster|geometry)||TBD||||1 week||1200||todo||
    124 ||[[BR]]'''Objective FV.10 - Being able to derive a raster layer from vector layer.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    125 ||- ST_Interpolate(points, pixelsize, method) -> raster||TBD||||1 week||1200||todo||
    126 ||[[BR]]'''Objective FV.11 - Being able todo on rasters most operations available on geometries.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    127 ||- ST_Centroid(raster|geometry) -> point geometry[[BR]]- ST_PointOnSurface(raster|geometry) -> point geometry[[BR]]- ST_Buffer(raster|geometry, double) -> same type as first arg.[[BR]]- ST_Difference(raster|geometry A, raster|geometry B) -> same type as first argument[[BR]]- ST_SymDifference(raster|geometry,raster|geometry,‘raster’|’geometry’) -> raster/geometry||TBD||||4 weeks||4800||todo||
    128 ||[[BR]]'''Objective FV.12 - Being able to use all the other topological operators.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    129 ||- ST_Equals(raster|geometry, raster|geometry)[[BR]]- ST_Disjoint(raster|geometry, raster|geometry)[[BR]]- ST_Touches(raster|geometry, raster|geometry)[[BR]]- ST_Crosses(raster|geometry, raster|geometry)[[BR]]- ST_Covers(raster|geometry A, raster|geometry B)[[BR]]- ST_IsCoveredBy(raster|geometry A, raster|geometry B)[[BR]]- ST_Relate(raster|geometry, raster|geometry, intersectionPatternMatrix )||TBD||||2 weeks||2400||todo||
    130 ||[[BR]]'''Objective FV.13 - Being able to edit a raster.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    131 ||- ST_Affine(raster|geometry,...) -> same type as input[[BR]]- ST_Translate(raster|geometry,...) -> same type as input[[BR]]- ST_Scale(raster|geometry,...) -> same type as input[[BR]]- ST_TransScale(raster|geometry,...) -> same type as input[[BR]]- ST_RotateZ,Y,Z(raster|geometry, float8) -> same type as input||TBD||||2 weeks||2400||todo||
    132 ||[[BR]]'''Objective FV.16 - Being able to quickly get raster statistics'' - Done''''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    133 ||- ST_SummaryStats(raster, nband) -> record[[BR]]- ST_ApproxSummaryStats(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record[[BR]]- ST_Count(raster, nband) -> bigint[[BR]]- ST_ApproxCount(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> bigint[[BR]]- ST_Histogram(raster, nband) -> set of records[[BR]]- ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, width double precision[], right boolean) -> set of record[[BR]]- ST_Quantile(raster, nband) -> set of records[[BR]]- ST_ApproxQuantile(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, quantiles double precision[]) -> set of records||BP||||2 weeks||2400||done||
    134 ||[[BR]]'''Other functions''' ||||||||||
    135 ||- ST_AsBinary(raster, compression) ([wiki:WKTRaster/SpecificationWorking03 specifications])|| ML (start ST_AsBinary) || ||2 weeks||2400 / !DevTime from MD||in-progress||
    136 ||- ST_RasterFromWKB(raster, [<srid>])|| TBD || TBD || - || - ||todo||
    137 ||- ST_RasterFromText(string, [<srid>])|| TBD || TBD || - || - ||todo||
    138 ||- ST_AsText(raster))|| TBD || TBD || - || - ||todo||
    139 ||- ST_SetPath(string)|| TBD || TBD || - || - ||todo||
    140 
    141 == GDAL Driver Milestones ==
    142 
    143 ||'''Objectives and Tasks'''||'''Coder'''||'''Approx. Schedule'''||'''Time'''||'''Approx. Contribution (US$)'''||'''Status'''||
    144 ||[[BR]]'''Objective 1 - Being able to read in-db regular blocking WKT Raster with the GDAL driver. ''' ([wiki:WKTRaster/SpecificationWorking01#Objective0.1.6g-BeingabletoreadandwriteWKTRasterwithGDALdriver. specifications])||||||||||
    145 ||- Read a WKT Raster from database (in-db, regular blocking)||JA||July - August 2010||TBD||!DevTime from JA ||done||
    146 ||[[BR]]'''Objective 2 - Being able to read out-db irregular blocking WKT Raster with the GDAL driver. ''' ([wiki:WKTRaster/SpecificationWorking01#Objective0.1.6g-BeingabletoreadandwriteWKTRasterwithGDALdriver. specifications])||||||||||
    147 ||- Read a WKT Raster from database (out-db, irregular blocking)||JA||July - August 2010||TBD||!DevTime from JA ||todo||
    148 ||[[BR]]'''Objective 3 - Being able to write WKT Raster with the GDAL driver. ''' ([wiki:WKTRaster/SpecificationWorking01#Objective0.1.6g-BeingabletoreadandwriteWKTRasterwithGDALdriver. specifications])||||||||||
    149 ||- Create a new WKT Raster in database (in-db/out-db, regular/irregular blocking)||JA||July - August 2010||TBD||!DevTime from JA ||todo||
    150 
    151 
    152 == Old Milestones for Beta 0.1.6 - All Done ==
    153 
    154 
    155 ||'''Objectives and Tasks'''||'''Coder'''||'''Approx. Schedule'''||'''Time'''||'''Approx. Contribution (US$)'''||'''Status'''||
    156 
    157 ||[[BR]]'''Objective 0.1.6a - Being able to create tables with RASTER fields'''||||||||||
    158 ||Initial setup: type definition, canonical input/output||SS||January 2009||4 weeks||2400 by SC[[BR]]2600 by MD||done
    159 ||[[BR]]'''Objective 0.1.6b - Being able to select RASTER values based on bbox spatial relation'''||||||||||
    160 ||[http://postgis.refractions.net/documentation/manual-1.3/ch06.html#id2747989 Spatial operators with semantic matching postgis ones] ||SS||February 2009||1 week||1200 by TE||done
    161 ||GiST indexing support||PR||February 2009||1 week||1200 by SC||done
    162 ||[[BR]]'''Objective 0.1.6c - Being able to load raster in the database''' ([wiki:WKTRaster/SpecificationWorking01#Objective0.1.6c-Beingabletoloadrastersinthedatabase specifications])||||||||||
    163 ||gdal2wktraster.py as a prototype of raster2pgsql.exe based on [http://www.gdal.org/ GDAL]||ML||February 2009||1 week||!DevTime from MD||done
    164 ||[[BR]]'''Objective 0.1.6d - Being able to get all the properties of a raster (all the "Get" functions).''' ([wiki:WKTRaster/SpecificationWorking01#Objective0.1.6d-BeingabletogetallthepropertiesofarasteralltheGetfunctions. specifications])||||||||||
    165 ||- ST_SRID(raster|geometry) -> integer[[BR]]- ST_Width(raster) -> integer[[BR]]- ST_Height(raster) -> integer[[BR]]- ST_PixelSizeX(raster) -> float32[[BR]]- ST_PixelSizeY(raster) -> float32[[BR]]- ST_RotationX(raster) -> float32[[BR]]- ST_RotationY(raster) -> float32[[BR]]- ST_UpperLeftX(raster) -> float32[[BR]]- ST_UpperLeftY(raster) -> float32[[BR]]- ST_GeoReference(raster) -> string[[BR]]- ST_NumBands(raster) -> integer[[BR]]- ST_BandPixelType(raster, band) -> string[[BR]]- ST_BandNoDataValue(raster, band) -> float32||ML||February 2009||1 weeks||!DevTime from MD||done||
    166 ||[[BR]]'''Objective 0.1.6e - Being able to intersect geometries and rasters to produce geometries . ''' ([wiki:WKTRaster/SpecificationWorking01#Objective0.1.6e-Beingabletointersectvectorandrastertoproducevector. specifications])||||||||||
    167 ||- ST_ConvexHull(raster) -> polygon geometry[[BR]]- ST_Envelope(raster|geometry) -> polygon geometry[[BR]]- ST_Polygon(raster) -> polygon geometry[[BR]]- ST_DumpAsPolygons(raster) -> polygon geometry set[[BR]]- ST_Intersects(raster|geometry, raster|geometry)[[BR]]- ST_Intersection(raster|geometry, raster|geometry)->geometry set||JA & PR||July - August 2010||8 weeks||4800 by SC / !DevTime from JA ||done||
    168 ||[[BR]]'''Objective 0.1.6f - Being able to set all the properties of a raster.''' ([wiki:WKTRaster/SpecificationWorking03 specifications])||||||||||
    169 ||- ST_SetSRID(raster|geometry, integer)[[BR]]- ST_SetPixelSize(raster, pixelsizex, pixelsizey)[[BR]]- ST_SetBandNoDataValue(raster, band, nodatavalue)[[BR]]- ST_SetGeoReference(raster, string)[[BR]]- ST_SetSkew(raster, skewx, skewy)[[BR]]- ST_SetUpperLeft(raster, x, y)||DZ||April 2010||1 week||Devtime from DZ||done||
    170 ||[[BR]]'''Objective 0.1.6g - Being able to register images as raster stored outside the database.''' ([wiki:WKTRaster/SpecificationWorking02#ObjectiveB02a-BeingabletoregisterTIFFandJPEGtilesasrasterstoredoutsidethedatabase. specifications])||||||||||
    171 ||- Mostly changes to gdal2wktraster.py[[BR]]- ST_BandPath() -> string||PR||February 2010||1 weeks||2400||done||
    172 ||[[BR]]'''Objective 0.1.6h - Being able to quickly get metadata for raster and band.'''||||||||||
    173 ||- ST_Metadata(rast)[[BR]]- ST_BandMetadata(rast||PR||June 2010||1 day||!DevTime from SC||done||
    174 ||[[BR]]'''Objective 0.1.6i - Being able to easily convert world coordinates to raster coordinates.'''||||||||||
    175 ||- ST_World2RasterCoordX(rast, xw, yw)[[BR]]- ST_World2RasterCoordY(rast, xw, yw)[[BR]]- ST_Raster2WorldCoordX(rast, xr, yr)[[BR]]- ST_Raster2WorldCoordY(rast, xr, yr)||PR||June 2010||3 day||!DevTime from SC||done||
    176 ||[[BR]]'''Objective 0.1.6j - Being able to set and know if a band nodata value is a true nodata value.'''||||||||||
    177 ||- ST_BandHasNodataValue(rast, band)[[BR]]- ST_SetBandHasNodataValue(rast, band, boolean)||PR||June 2010||1 day||!DevTime from SC||done||
    178 ||[[BR]]'''Objective 0.1.6k - Being able to get and set the value of a pixel.'''||||||||||
    179 ||- ST_Value(rast, band, x, y)[[BR]]- ST_SetValue(rast, band, x, y, val)||PR||July 2010||1 day||!DevTime from SC||done||
     82 * C version of raster2pgsql (in-progress)
     83 * raster_column and raster_overview as view
     84 * ST_Intersection(raster, raster)
     85 * Break up RASTER_mapAlgebra2 so that the main engine is in rt_core instead of rt_pg.  This is needed for C-based aggregate functions that run against MapAlgebra.
     86 * Multi-band ST_AddBand()
     87 * Different variant of ST_SetValues()
     88 * ST_Within(), ST_contains(), ST_Overlaps(), ST_Touches, etc...
     89 * C version of the ST_Union(raster) aggregate
     90 * ST_UnionToRaster() and ST_BurnToRaster()
     91 * MultiBand MapAlgebra(raster, raster)
     92 * ST_CreateOverview(), ST_IsRegularlyTiled(), ST_HasOverlaps(), ST_HasGaps(), ST_HasTileSameSize(), ST_HasTileAligned()
     93 * Subtiling of rasters (PostGIS 3.0 or create a new raster type)
     94 *