Landis Spatial Modeling Library
To-do list for Landis Spatial Modeling library
NOTE: This list is no longer active; instead, see the project's issue tracker at Google Code.
GeospatialModeling
- Relocate this to-do list to the library's new project site at Google Code. (top priority) (Done)
- Add the library's design goals to its project wiki (top priority). (Issue 2 at Google Code)
- Investigate whether to change Location.Row & Column from uint to int, same for Dimensions.Rows & Columns
- Reason: to make it easier to do calculations w/o casts
- JD: done already; need to review client code to remove the casts that are no longer needed
- Investigate idea of properties that return enumerators for a grid’s rows # and columns #s (Issue 3 at Google Code)
- for example:
foreach (int row in grid.RowNumbers) { foreach (int column in grid.ColumnNumbers) { ... // do something with grid[row, column] ... } }
- for example:
- Override Site.ToString method to return location as string (useful for debuggers) (high) (Done)
- Same for ActiveSite and possibly related enumerator types
- Remove src/modules intermediate directory; move grids, landscapes and raster-io directories into src directory (flatten directory structure). (Done as part of the new architecture: separate assemblies for library API and implemenation.)
- Make sure the methods that take Location parameter in landscapes and raster-io modules have an override that takes the Grids.Location type as well (to allow interchange between the two modules) (No longer necessary because the new assembly for the library API will have just one Location type.)
Raster-IO Module
These tasks are no longer relevant because of the new library architecture using GDAL. Tasks 1 and 2 are eliminated because the architecture has no raster drivers. Task 3 is irrelevant because the architecture will use the GDAL mechanism for metadata.
- Resolve how to pass metadata (in particular, coordinate system information) between raster drivers.
- Current partial approach uses FGDC names for metadata; not widely used.
- Investigate recent standards by Open Geospatial Consortium; they use well-known text (WKT) representations of coordinate systems.
- Determine convention for how a raster driver stores metadata other than coordinate system
- Add auxiliary methods to RasterIO.Metadata
- clear a value for a particular key
- clear all values in the metadata
- enumerate over keys or key,value pairs
- ctor that takes a IMetadata (read-only metadata) parameter
Raster Driver Administration Tool
The architecture of the spatial library using GDAL has no raster drivers; therefore, these tasks are no longer relevant.
- Design and implement tool to administer the "database" of installed raster drivers.
- "Database" is an XML file just like plug-ins database, so the driver admin tool will work like the plug-in admin tool in that the former will modify the associated XML file.
- Provide basic commands for adding and removing a driver from the XML file. Also provides a way to specify which driver should be used for reading or writing a particular raster format. For example, our ERDAS 7.4 driver and the GDAL driver both can read ERDAS 7.4 formats. The admin tool allows the user to specify which driver is used for reading those formats.
- Multiple copies of the admin tool should be allowed on a system because the tool's distributed with the library, and there may be multiple applications installed on a system that each have their own copy of the library.
ERDAS 7.4 Raster Driver
These tasks are no longer relevant because the new spatial library architecture using GDAL has no raster drivers, and because GDAL reads this format.
- Modify Metadata.SetFields method to handle standard names.
- Research which projection types, if any, are Lat/Lon based and therefore use units of degrees for XCELL and YCELL values.
- Research if State Plane projection type uses international or survey feet.
GDAL Raster Driver
These tasks are no longer relevant because the new spatial library architecture using GDAL has no raster drivers. The proof-of-concept for the new GDAL implementation was built from scratch instead of using Mikah's work or SharpMap.
- Assess the extent of Mikah's work on this; is it ready for deployment?
- Move test code to NUnit
- The SharpMap project has an extension that wraps the GDAL driver. Investigate whether that code could serve as the basis for our GDAL driver.
- Investigate the issues with deploying the GDAL library. That library is unmanaged code, so it's distributed in OS-specific formats (e.g., the DLL is for Windows only). If the GDAL driver and library are deployed in OS-specific installers, then each installer should include the platform-specific library.

