Raster Development Page

Version 1 (Redmine Admin, 11/23/2011 04:44 pm)

1 1
2 1
h2. Background 
3 1
4 1
In early 2007, efforts were made to reintroduce some basic contrast enhancement and begin refactoring the largely monolithic QgsRasterLayer class. Efforts to modify the core raster functionality began in earnest with creation of the RasterTransparencyBranch. In June of 2007 an IRC meeting was held to discuss some potential future directions for how the core raster functionality should work, the outline for this discussion as captured on the RasterRefactorRfc page.
5 1
6 1
There are numerous directions that raster development can go and a great number of features that are desired (e.g., chained filters, integration with OSSIM). Discussions throughout 2007 largely ended with a general consensus of keeping the number of dependencies to a minimum and to focus on a smaller set of functionality that would be rock solid for the upcoming release of version 1.0.
7 1
8 1
This page is largely going to focus on the needs for getting the core raster functionality ready for version 1.0. A section at the end will be provided for large scale changes and functionality that would be desired in a future major release (i.e., version 2.0)
9 1
10 1
11 1
h2. Branches Related To Raster Development 
12 1
13 1
* gdalogr-capi-branch [no longer active]
14 1
* RasterTransparencyBranch [no longer active]
15 1
16 1
17 1
h2. ToDo List 
18 1
19 1
20 1
h3. General 
21 1
22 1
* Switch from GDAL C++ API back to the C API due to Windows platform limitations (./)
23 1
* Performance improvements
24 1
* Improve self checking in all QgsRasterLayer methods and classes
25 1
** Segfault protection at the start of each method - is the raster band valid (need mostly superceded by C API which does this checking)
26 1
** Verify all internal variables are initialized properly and in the proper order
27 1
** Is the method appropriate for the data type - e.g., raster band stats should not be generated for wms
28 1
* Remove all QT3 support
29 1
* Migrate to using GDALGetRasterStatistics() and let GDAL keep it in an .aux.xml file, consider allowing approximate stats. (FrankW willing to take this task)
30 1
* Display palleted images as single band with color map rather than faux three band
31 1
32 1
33 1
h3. GUI 
34 1
35 1
* Neaten up raster properties UI (in progress)
36 1
* Fix current transparency slider (./)
37 1
* Update histogram tab
38 1
* Hide Custom Color map until needed rather than just disabling
39 1
* Verify GUI features properly enabled/disabled depending on image type and display method
40 1
41 1
42 1
h3. Python Specific 
43 1
44 1
* Make identify method in QgsRasterLayer python friendly or create an alternative method/wrapper
45 1
46 1
47 1
h3. Refactoring 
48 1
49 1
* Create independent histogram class
50 1
** Implement more dynamic and informative browsing of histogram table
51 1
** Allow min max values to be set from histogram
52 1
53 1
54 1
h3. Transparency Class 
55 1
56 1
* Fully implement getting transparency level from another band in the current layer
57 1
* Fully implement getting transparency level from another band in a different layer
58 1
* Add ability to use simple logical expressions in place of absolute pixel values
59 1
60 1
61 1
h3. Shader Class 
62 1
63 1
* More user-defined color pallet/lookup options
64 1
* Ability to save custom ramp
65 1
66 1
67 1
h2. Wish List & Looking Toward Version 2 
68 1
69 1
The list below is intended to provide a set of features and future direction that are beyond what is deemed necessary and possible for getting a stable raster core ready for version 1.0. Please contribute your ideas (be as descriptive as possible).
70 1
71 1
* Evaluate integration with OSSIM - initial testing should be done as plugins
72 1
* Windowed access to raster data for filtering and analysis
73 1
* Chained filters