LandSerf 2.3: Changes Since 2.3 Preview
New functionality
- Added US Albers equal area projections, both conterminous and all states versions.
- Colour table files can now indicate 'raw' colour values.
- Added load/save option to vector appearance box.
- Pit removal now has choice of pit flooding or outflow channelling.
- Non-rasterized flow magnitude calculation with optional flow vectors now available.
LandScript:
- LandScript
draw()
can now draw both primary and secondary vector maps rather than just a single vector map.
- Added
vectorstyle()
as a LandScript command for setting vector drawing styles for the LandScript draw()
and save()
commands.
- Added vector map algebra processing to LandScript.
- Added multiscale option to LandScript
surfparam()
command.
- Added
compare()
function to LandScript for string comparison and matching.
- LandScript map algebra now uses active attribute in attribute tables if present.
- Added
noTable
option to the LandScript edit()
command for removing attribute tables from spatial objects.
- Added ability for LandScript to save colour tables and attribute tables.
- Enhanced the LandScript
echo()
command to allow writing to a text file and with newline and tab control characters.
- Added
freqdist()
command to LandScript to allow frequency and hammock distributions to be output.
- Added
peakclass()
command to LandScript to allow peak classification.
- Added
quote()
, strlen()
and substring()
LandScript functions.
- LandScript
version()
can now display more detailed information about the version of LandScript and Java VM.
- LandScript
ifelse()
function can now return values of any type.
User interface changes
- LandScript editor now fully exits the application if called directly and only prompts for closing if there are unsaved edits.
- LandScript editor now highlights variables that use the underscore modifier.
- Appearance of text, including option to size text, now improved in LandScript editor.
- Calls to the GUI version of the LandScript engine without specifying initial data now results in simple header being inserted into blank script.
- Graphics now scale to vector map only if raster is selected but not displayed.
- Vector appearance now remembers boundary colour when no boundary is set.
- Improved speed and quality of vector thumbnail drawing.
- Vector display no longer displays labels (or symbols) for any object with a
NO_VALUE
attribute.
- Console now appears to the right of the main LandSerf window and can be toggled on and off with the ctrl/cmd-K key.
- Numerous minor changes to improve consistency of GUI.
Bug fixes/enhancements
- Corrected bug that would sometimes mis-transform vector polygons after repeated redrawing.
- Corrected bug that prevented Albers to lat/long transformation from working correctly.
- SVG output can now draw labels.
- SVG output now respects all vector drawing styles with the exception of 'surround lines' and fixed line/point (which has no meaning for non-zooming output).
- Corrected bug in attribute table that could sometimes fail to validate columns with mixed numeric and text values.
- Corrected bug in shapefile writer that would fail if attribute table not valid.
- Corrected bug in Shapefile writer that would sometimes give incorrect file size in header for area and polyline objects.
- Improved KML export to account for polygons with multiple exterior rings.
- Improved robustness of GPX reader to allow elements with missing attributes to be processed.
- Removed bug in shapefile writing of polygons with multiple parts and improved error reporting of shapefile import.
- Saving a graphics image no longer produces error if vectors only are in display.
- Corrected bug that prevented generic point files being read in LandScript.
- Corrected bug that could sometimes result in rounding errors when calculating standard deviation in multiscale parameter selection.
- Corrected bug in multiscale parameter calculation that failed to provide min/max values for feature types, residuals and fractal dimension if selected.
- Corrected bug in LandScript
surfparm()
which assumed radians rather than degrees for slope tolerance.
- Corrected bug in LandScript where a change in contents of a scalar variable to a spatial object generated an error.
- Corrected LandScript bug that reset evaluation stack when function arguments contained other function calls. This was only a problem when the argument was not the first in a function call.
- Non-jpeg image files now represent null value as transparent pixels.
- Corrected bug that sometimes did not rasterize points when converting from vector to raster.
- Corrected bug in FrenchNTF projection that used wrong ellipsoid for longitude projection.
- Corrected bug where min/max vector values could be
NO_VALUE
if first point was null.
- Added help for 'function', 'clear', 'if' and 'while' in LandScript.
- Corrected bug where clicking on an existing vector while rectifying resets the control point display styles.
- Improved ridge traversal for peak classification to use shortest path where two paths have same height change.
- Removed bug whereby projection information was lost when creating pitless surfaces.
- Pit removal now accounts for null borders around rasters.
- Error reporting improved providing more detail.
API changes/enhancements (for programmers)
- Added
getNodeElements()
to DOMProcessor
to allow breadth-first searches of a DOM tree and renameElement()
method
for renaming tags.
- Numerous minor improvements to API documentation.
- Added
nearestPoint()
method to Segment
class for calculating nearest point between segment and an arbitrary 2d point.
- Refactored vector display preferences to use a single class that encapsulates rendering styles. Note API change now forces this new
VectorStyles
class to be used rather than setting/getting individual styles in GraphicsArea
, VectAppearanceBox
etc.
- Exposed scripting classes used by
ScriptEngine
.
- Renamed
getParamAverageSurf()
and getParamVariationSurf()
to getSummarySurf1()
and getSummarySurf2()
to reflect the fact that they could also return min/max surfaces.
- Used latest Jogl 1.1.1 libraries (May 2008) and changed 3d viewer to use a lightweight
GLJPanel
rather than heavyweight GLJCanvas
. This now works with Java 6. Reintroduced multi-texture rendering to provide compatibility with older OpenGL drivers.
- Improved
isOpenPolygon()
in GISVector
to account for multi-part polygons.
- Moved Alloy look and feel settings to separate class to allow decoupling of the LandSerf class from its look and feel.
Earlier Changes