So, my first blog entry. A new medium for me so I have to find my way around here. What can you expect here? Well, for the moment my intention is two fold. First to show some of the (new)things that are possible in ILWIS. Second, some musings, ideas and facts of what will end up in ILWIS in the future.
My first blog will be a bit different. It will scetch a bit the enviroment in which ILWIS currently exists and what directions (in general) has been followed and will be followed.
Let me first give you in what context ILWIS has been developed the last few years. ILWIS is currently mainly developed in the projects I work in. So a number of the new things you see in ILWIS are often generalizations of something I needed in a project. Apart from that there is some time outside those projects with ‘free’ developement, but this is limited. This also means that I can not always develop what I think is necessary because I am constrained by the needs of my customers. This is not necessarly a bad thing, I always felt that, with software develoment, it is better to be driven by the demands of reality than the demands of fancy.
So what has been accomplished within this context the last few years? There are two kind of development here: Internally and for the end-user. Internal redesign of ILWIS may not seem very interesting for the end-user but the end effects of such redesign can benefit the end-user greatly. Basically there were three major redesigns of parts of ILWIS the last few years.
– Modulerization. Large parts of ILWIS are now basically a plug-in system. This simplifies development for me a lot. I can now design specific functionality for a customer without having to touch ILWIS itself. Applications, Import/exports, the drawing routines of the mapwindow, services, command-line commands, all plugins. ILWIS runs fine without them (though with reduced functionality of course) and a developer doesnt need to care about the core of ILWIS if he develops a plug-in.
– OGC’s simple features. The whole vector system of ILWIS is now based on GEOS (http://trac.osgeo.org/geos). The old system has been totally removed. Apart from the much richer enviroment (for vectors) for developers, the end-user has been given access to some 20-30 new vector applications (mainly set operations for features, though not exclusively) because it was rather trivial to add them after the conversion. It also opens the path for spatial databases in ILWIS though that has to wait until after 3.8 release.
– The new mapwindow. The old, what we call “drawer”, system of ILWIS, the drawing of maps, put severe limitations on us what we could accomplish. It was “old” technology and at places designed with the limitations of that time in mind. These days there is so much more possible. So I redesigned the whole drawing system and mapped it to OpenGL. Fortunately one of of customers backed us in this so the time was created to do this. This still not finished though the bulk of the work has been done. The new design ( plug-in of course) offers many benefits to the end user : on the fly reprojections of rastermaps/vector maps, 3D possibilities, transparencies at every level, dynamic recoloring of maps, better performance, etc …
Much of the direction of ILWIS these days comes from the GEONETCast project (http://www.itc.nl/Pub/Organization/Geonetcast-Toolbox.html), a plug-in to ILWIS which has twice the sice of ILWIS itself. Most likely this will remain so in the comming years. This project is mainly concerned with remote sensing and dissemination of remote data streams. For after 3.8 I know now already that I have to improve/extend the classification options of ILWIS.
Apart from that, the research group of people I work in, is very focussed in web services and the like. From them the whish has been expressed to leverage some of the functionality of ILWIS in a service enviroment. Related to this is an idea to make ILWIS functionality available through a Python extension to enable our students to make server side scripts with geo functionality.
Documentation. A better documentation of ILWIS is needed. Not only the help files, excellent as they are, they slowly but surely will get outdated. But also the developers side of documentation. Now the help files I will probably not myself update. In that area I dont have many talents. I opened up the help files for the 3.8, they are available as seperate HTML pages and used as such by ILWIS. So feel free to adapt, improve, extend. I can always integrate it. Developers documentation though, that will have to be improved as it is limited now.
It is always difficult to predict the future, so I won’t make any predictions : in “3.9 you will have…”. Lets first finish the 3.8 :).