[Qgis-developer] Sextante test drive

Diego Gnesi Bartolani diego.gnesi at gmail.com
Sat Apr 20 05:12:38 PDT 2013


Hi,

    I am an italian archaeologist and an enthusiastic QGIS user. I do
what I can to spread the knowledge about QGIS and other open source
softwares to my university students (I am a contract professor at the
Basilicata University and some days ago I've become contract professor
at the Specialization School of Archeology of Udin, Venice and
Trieste).
The main difficulty I have with open source GIS is the advanced
editing of vector layers. QGIS doesn't offer too much support to
digitizing, the CAD Tools plugin has some useful functions but is far
from being complete and the kind of interaction that it proposes is
not very productive and time-saving (it's not a critic: CAD Tools
saved my life a lot of time, and I want to thank the developers and
maintainers). Many times, I had to convert my vector layers to dxf and
back in order to perform some complex tasks (with all kind of
conversion problems, like the preservation of the attributes values,
etc.).
I have some experience in programming (about ten years of
developement, mainly in C# with the .NET Framework, before I switched
to Linux), and I would like to try (only try, without promising
anything!!) to implement complete CAD tools and functions (I there
isn't and analogous project already active; in that case, nevermind!).

I think that developing a CAD plugin from scratch is very hard to me
and maybe not the better way to get good results, so I'm oriented to
try to augment the interaction between QGIS and an existing CAD
software (I'm thinking to LibreCAD). I thought to two possible
strategies:

1. Use the LibreCAD library and source code to develop a C++ QGIS plugin;
2. Create a shapefile/spatialite/postgis driver for LibreCAD in order
to edit those formats inside LibreCAD.
3. Convert some layers of the QGIS project in a dxf file and back
(each QGIS layer in a different layer of the final dxf file).

I'm asking your opinion about which of those ways could be the faster
or the better to implement, or which one is impossible to undertake
according to your knowledge of the QGIS API.

My doubts are:

Strategy #1: Probably the ideal one, but does the implementation of
complex snaps or constraints against the features of other layers
(i.e. midpoint, parallels, etc.) require changes to the QGIS API, or
all these operations can be contained on a plugin? Is it better to
work directly on QGIS vector layers or to create a plugin layer, edit
it and then commit the changes to the vector layer? The conversion
could help me to manage geometries in the way LibreCAD wants. Is it
possible in your opinion to have an interactive shell (i.e. draw the
first point, and then inserting the coordinates of the second point)?
Strategy #2: Probably the easier, but I should find a way to disable
some LibreCAD functions (i.e. the drawing of splines, or the drawing
of points on a line layer) without disseminating my changes all over
LibreCAD's source files. For this kind of solution I'll ask to the
developers of LibreCAD.
Strategy #3: The problem is on committing the changes of the dxf file
to the original layer: how to specify that a line in the dxf file must
replace the geometry of and existing record of the original spatialite
layer? Maybe it's impossible, it doesn't seem to me that I can put on
a dxf file the necessary metadata to preserve a link to the original
features.

What do you think? And what do you actually do when you have to draw
complex shapes on shapefiles or other vector layers?

Diego Gnesi

2013/4/20 Paolo Cavallini <cavallini at faunalia.it>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Il 20/04/2013 10:52, Victor Olaya ha scritto:
>
>> I have been thinking about changing all the options dialog. Doesn't
>> look hard to do, so you can count on having this ready soon
>
> great, thanks. ready to help if necessary. I still think the appearance of sextante
> dialogs do not seem too much in line with QGIS look, so maybe you can ask someone to
> help with the GUI.
>
>>    1) The classification of algorithms is done manually...and it is
>> boooooring to do :-) SAGA and QGIS ones are already done, but I have
>> to do the GRASS ones. However I am not sure about including GRASS, it
>> is more complex to use. You can use a SAGA algorithm without knowing
>> what SAGA is, but to use a GRASS one, you need to understand some
>> GRASS ideas, so it is an advanced process, and the simplified
>> algorithm classification shouldn't assume that. You can always change
>> to the advanced view to use GRASS (now you can change directly from
>> the toolbox, no need to go to the config dialog)
>
> Sorry I do not agree with you:
> * most GRASS commands, as they are incorporated into sextante (or in the GRASS
> plugin, by that way) are really straightforward to use; in courses people often do
> not notice the difference
> * more importantly: GRASS is included in most if not all QGIS installation, so you
> can rely on it; this is not the same for SAGA
> * GRASS modules have a proper manpage, while SAGA is sometimes very hard to understand
> * GRASS has a long history and a wide community, so you can trust more on it on the
> longer term.
> So in short I would not put GRASS as a second class citizen in Sextante ;)
>
>>    2) I would like to have in that list, only those algorithms that
>> need no extra configuration, to make that the default and have it
>> working out-of the box. That's why R and OTB, for instance, are not in
>> there.
>
> Again, do not agree: some OTB commands are very straightforward, and solve problem
> people have struggled on for years. The usual effect of showing it is jaw-dropping.
> Removing stuff from first sight may have deeper consequences than a clever developer
> can foresee, sometimes :)
>
>> good idea. If OTB goes into osgeo4w, I could add the OTB algorithms to
>> the simplified list of algorithms
>
> OTB *is* already on osgeo4w - my suggestion (a strong one BTW) is to include it in
> the standalone installer for QGIS 2.0
>
>> I still have to send Jurgen the SAGA package as we discussed it in the
>> Hackfest. We can put both SAGA and OTB, and taht would really give a
>> lot of power to SEXTANTE
>
> Right!
> Thanks for your hard work, and good code.
> - --
> Paolo Cavallini - Faunalia
> www.faunalia.eu
> Full contact details at www.faunalia.eu/pc
> Nuovi corsi QGIS e PostGIS: http://www.faunalia.it/calendario
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAlFyZ5QACgkQ/NedwLUzIr7T1ACgsRbc0ZwCb0SHsfj++uGUVN2+
> /6QAoLUqOAhrTP1Rho0PWYfPVVzjyQJr
> =cHRR
> -----END PGP SIGNATURE-----
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer


More information about the Qgis-developer mailing list