Releases: 52North/IlwisCore
ILWIS Objects 1.0 Beta 3.0
This beta release of the ILWIS Objects Python extension comes with several enhancements and stability improvements, and includes the most recent ILWIS Objects framework.
+++Release notes+++
Improvements in the installation:
- Versions are made available for Python 3.3, 3.4 and 3.5 (choose the one that you need to download)
Improvements in the Python API:
- The python extension was renamed from
ilwisobjectstoilwis. Now you doimport ilwisinstead ofimport ilwisobjects as ilwis. - Doing
selecton the attribute table of an ilwis3 FeatureCoverage didn't work (e.g.attrtable.select("pop_est > 10000")). - Change:
FeatureCoverage('name')can no longer be used to create a new empty FeatureCoverage. Usefc = FeatureCoverage()followed byfc.name('name'). - A clipping iterator over a rastercoverage clipped with a polygon that is too small would crash.
- Removed the unused parameter
spacesfromCoordinateSystem.toWKT(). - FeatureIterator now supports indexing, E.g.
iter(fc)[100]. - Now
addColumn()on anilwis.Tableworks correctly. - Solved crash in
PixelIteratorwhen indexing an item outside the raster (e.g.rciter[10000000]). - Added support for south UTM zones.
- Many new
ilwis Engine.do(...)operations, e.g.point2raster,polygon2raster,distanceraster,joinattributes. Checkilwis.Engine.operations()for the complete list. - Storing ilwis3 rasters with int32 resolution would throw an error.
- Correctly store ilwis3 coordinate systems along with the featurecoverages.
- Corrected the problem of attempting to store an ilwis3 table to a bad path (the path string was doubled).
- Implemented the
>and<operators for RasterCoverage (e.g.rcout = rc1 > rc2), producing a boolean RasterCoverage as output. ilwis.Engine.do(...)with binary logical operations now works properly.- Solved a problem with
setWorkingCatalog()that caused problems opening ilwis3 files with warnings like "Couldn't find coordinate system myname.csy, defaulting to unknown". - Corrected compatibility in storing/loading Ilwis3 files, especially tables, domains, all numeric values, and coordinate systems:
- Domain Value 32 bits integer was unsupported
- Stored tables couldn't be loaded by Ilwis3 due to a missing domain
- Numeric values (all integer and floating point values, like coordinates, domain-range boundaries, nodata values) were written in a format that is not always compatible with Ilwis3
- Coordinate systems would have wrong data
- The gdal connector would treat CSV files in a way that they couldn't be opened as a table (only as an attribute-table of a non-existing featurecoverage, which didn't work).
- The
FeatureCoverage.reprojectFeatures()operation would enlarge the extents of the output. - Operation
RasterCoverage.select()would produce a bad clip result, or produce a georeference that is slightly shifted and scaled compared to the original pixels, or occasionally crash. - Improvement in the error feedback of
ilwis.Engine.do(). ilwis.Engine.operations()andilwis.Engine.operationMetaData()are now called without round brackets after Engine, thus not Engine(), to be consistent with the other Engine functions.- For
FeatureCoverageandRasterCoverage, renamedsetSubDefinition(),subDomain()andcountSubs()tosetStackDefinition(),stackDomain()andcountStackDomainItems(), to clarify that those functions refer to the domain of the map-stack (the additional dimension). - Simplified the
store()of the ilwis objects:store()can now be called with less parameters when it is obvious which format or which driver to use. - Operation
mergefor merging two DataDefinitions was crashing, this is repaired. - Several
clonefunctions were crashing, this is now repaired. - Eliminated unimportant messages from printing on the screen.
- One can now open PostgreSQL Catalogs, Tables, FeatureCoverages and RasterCoverages. E.g.
cat = ilwis.Catalog("postgresql://user:pass@myserver.cc.nl:5432")and thencat2 = cat['databasename']to navigate through the databases, schemas and tables, or use directlyfc = ilwis.FeatureCoverage("postgresql://user:pass@myserver.cc.nl:5432/databasename/schema/featurecoveragetable").
NOTE: Due to the mentioned changes/renames to the functions exposed by the API, if you have existing Python scripts that are based on the ILWIS Objects Python extension, they may need to be revised.
ILWIS Objects 1.0 Beta 2.3
This beta release of the ILWIS Objects Python extension solves an issue with the addBand function of RasterCoverage, which is used when creating new RasterCoverages from scratch.
ILWIS Objects 1.0 Beta 2.2
This beta release of the ILWIS Objects Python extension comes with several enhancements and stability improvements, and includes the most recent ILWIS Objects framework.
+++Release notes+++
Improvements in the installation:
- The PATH environment variable is no longer altered during installation, nor used by ILWIS Objects or the Python extension. Please first uninstall any previously installed ILWIS Objects with Python extension, so that the PATH is restored and any remnants of the old setup are gone.
- The ILWIS Objects Python extension now resides in its own folder under Python's "site-packages", just like regular Python extensions.
- Versions are made available for both Python 3.3 and 3.4 (choose the one that you need to download)
Improvements in the Python API:
- Spelling errors in some of the Python commands were corrected (e.g. ContinousColorRange is now ContinuousColorRange, see corresponding section in the wiki for all the renames).
- Consistency improvement: the schema of a FeatureCoverage cannot be altered through its attribute table (e.g. world.attributeTable().addColumn() is now world.addColumn()).
- Modernized the name of some functions, also bringing them in consistency with other similar functions: myfeature.setGeometry(mygeometry) is now myfeature.geometry(mygeometry), domain.add(anitem) is now domain.addItem(anitem), domain.remove(anitem) is now domain.removeItem(anitem).
- Functions that check whether a domain/range contains or doesn't contain an item are improved, and will no longer result into the wrong answer.
- The estimated range of the output values of a mathematical computation over raster bands is improved; the domain of the output fits better.
- Modernized filename and path handling: now both file:///c:/ and c:\ are supported, e.g. ilwis.Engine.setWorkingCatalog(r"d:\mydatafolder") is now the same as ilwis.Engine.setWorkingCatalog("d:\mydatafolder") and ilwis.Engine.setWorkingCatalog("file:///d:/mydatafolder").
- When a working catalog is set, objects can be accessed and stored with just their filename; it is no longer required to supply a full path to the files. The framework will look for them or store them in the working catalog.
- Function setInputConnection(...) is renamed to open(...).
- The two separate functions setOutputConnection(...) and store() are now combined into one total function named store(...). This stores the object in one step.
- Added PostgreSQL/Postgis, WFS, Excel (.xlsx) and OpenOffice spreadsheet (.ods); they still need to be documented in the wiki.
- Several functions that were not working in the previous beta, are corrected (reprojectRaster, pointrastercrossing).
- Several functions or sequences of statements that were causing a crash in the previous beta, are corrected (toWKT(), specific use of iterators).
Still to do (work for the next beta):
- Improve the KNMI-flavoured netCDF format reading; currently they come without georeference and projection.
- Improve storing files in the ILWIS3 format (the files that are stored by ILWIS Objects are not always understood by ILWIS 3.x).
NOTE: Due to the mentioned changes/renames to the functions exposed by the API, if you have existing Python scripts that are based on the ILWIS Objects Python extension, they may need to be revised.
ILWIS Objects 1.0 Beta 1.1
The first beta release of the ILWIS Objects framework contains a set of Connectors (ILWIS3, GDAL) and a small set of GIS operations (mostly basic raster manipulation) plus the Python extension for Python 3.3 (32bit). This release is meant for testing purposes only.