Re: [Qgis-developer] Creating large datasets with PyQGIS

2015-03-24 Thread Matthias Kuhn
Did you have a look at spatialite?

It is a portable database format like dbf, has good support by qgis,
supports indexing...

Best
Matthias

On 03/24/2015 07:49 PM, Pedro Camargo wrote:
> Hi,
>I am currently working with some large geographic files (~130Gb
> divided in thousands of files) and I need to output the result of the
> analysis in some sort of data format, which cannot be a relational
> database (because of the people that will be using this processing
> framework in the future).
>
>Right now I am reading and writing to text files, which is
> EXTREMELY slow.  DBF is not really a good option because its many
> legacy issues, so I was thinking about hdf5 or something of that sort.
>
> Is there anything in QGIS that would me allow to work with that?
>
>I am on a Windows environment, so using my pytables installation is
> a pain in the neck.  Any suggestions?
>
>BTW any advancements on how to install Python packages to QGIS own
> python installation?
>
> Thanks,
>
> Pedro
>
> PS - Sorry for using windows  ;-)
>
>
> ___
> Qgis-developer mailing list
> Qgis-developer@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer



signature.asc
Description: OpenPGP digital signature
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [Qgis-developer] Creating large datasets with PyQGIS

2015-03-24 Thread Werner Macho
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Pedro!

I think I cannot help you with large data.. (unwritten law of IT that
it is pushed to its limits everytime).
But regarding a python modules probably take a look here:
http://quantumofgis.blogspot.co.at/2014/11/qgis-standalone-and-python-mo
dules.html

regards
Werner

On 03/24/2015 07:49 PM, Pedro Camargo wrote:
> Hi, I am currently working with some large geographic files
> (~130Gb divided in thousands of files) and I need to output the
> result of the analysis in some sort of data format, which cannot be
> a relational database (because of the people that will be using
> this processing framework in the future).
> 
> Right now I am reading and writing to text files, which is 
> EXTREMELY slow.  DBF is not really a good option because its many
> legacy issues, so I was thinking about hdf5 or something of that
> sort.
> 
> Is there anything in QGIS that would me allow to work with that?
> 
> I am on a Windows environment, so using my pytables installation is
> a pain in the neck.  Any suggestions?
> 
> BTW any advancements on how to install Python packages to QGIS own 
> python installation?
> 
> Thanks,
> 
> Pedro
> 
> PS - Sorry for using windows  ;-)
> 
> 
> ___ Qgis-developer
> mailing list Qgis-developer@lists.osgeo.org 
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
> 
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.20 (GNU/Linux)

iEYEARECAAYFAlURtYsACgkQDAH1YiCxBgkwgACcDOZJzerVW53ihx9EBQxf7qzg
cagAnjlMl+BZGqvdIyTQgTnqn28if64g
=l81R
-END PGP SIGNATURE-
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


[Qgis-developer] Creating large datasets with PyQGIS

2015-03-24 Thread Pedro Camargo
Hi,
   I am currently working with some large geographic files (~130Gb
divided in thousands of files) and I need to output the result of the
analysis in some sort of data format, which cannot be a relational database
(because of the people that will be using this processing framework in the
future).

   Right now I am reading and writing to text files, which is EXTREMELY
slow.  DBF is not really a good option because its many legacy issues, so I
was thinking about hdf5 or something of that sort.

Is there anything in QGIS that would me allow to work with that?

   I am on a Windows environment, so using my pytables installation is a
pain in the neck.  Any suggestions?

   BTW any advancements on how to install Python packages to QGIS own
python installation?

Thanks,

Pedro

PS - Sorry for using windows  ;-)
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Vaclav Petras
On Tue, Mar 24, 2015 at 1:30 PM, Pietro  wrote:

> Hi Vaclav,
>
> On Tue, Mar 24, 2015 at 3:54 PM, Vaclav Petras 
> wrote:
> > On Tue, Mar 24, 2015 at 2:00 AM, Pietro  wrote:
> >> together with Francesco Geri, last week we started to write a first
> >> draft that generate the GUI for the GRASS module dynamically (based on
> >> the xml generated with: --interface-description), so far it is based
> >> on grass7 but should work also on grass6 (not tested, should be enough
> >> to backport the pygrass.modules.Module class).
> >
> > Hi Pietro and Francesco,
> >
> > this sounds good. Are you speaking about QGIS GUI (in Python) generated
> from
> > --interface-description? Do you think it would be possible to write it
> in a
> > way which would be GUI framework independent so that it is usable in both
> > GRASS and QGIS? The GUIs for modules in GRASS are quite good now but the
> > code should be rewritten and this would be a great way how to get this
> new
> > implementation.
>
> yes, actually what I wrote it is completely independent from QGIS, it
> is compatible with pyqt/pyside and with python2/python3,
> It is just a proof of concept. Now Francesco it is working to better
> integrate this draft with QGIS stuff.
>
> That's good to hear.


> The idea was heavily based on formlayout code:
>
> https://code.google.com/p/formlayout/
>
> Basically each parameter is a GUI field that it is add to the main
> window, therefore based on the parameter type the field could be:
>
> if "raster"/"vector" => a combo box with the rasters/vectors available
> if "integer" => a spinbox
> if "string"/"double" => a text field
> if "file" => a file dialog
>
> based on the guisection parameter all the options are organized in tabs.
>
>
Both QGIS and GRASS are adding different extra features like setting region
according to a selected raster or dependent fields for vector GRASS layers
and attributes. That's why it gets complicated at the end. And of course
then there is the extra information which is not stored in XML such as
"GRASS standard options".

Anyway, skipping qgm is quite important feature for QGIS since it is
necessary for GRASS addons as you say.


> The code is under 500 lines of code.
>
> I guess should be possible to follow the same approach using the wxpython.
> I think that with a bit more effort should be possible to make it
> general enough to make it independent from the GUI framework (Qt/Wx)
> that we want to use.
>
> I have not link to share at this stage because we are still working on it.
> But I guess we can share the code as soon as we have something that it
> is able to cover the basic needs.
>
> I'm looking forward to that.

>
> Pietro
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Radim Blazek
On Tue, Mar 24, 2015 at 7:00 AM, Pietro  wrote:
> Hi Radim,
>
> together with Francesco Geri, last week we started to write a first
> draft that generate the GUI for the GRASS module dynamically (based on
> the xml generated with: --interface-description), so far it is based
> on grass7 but should work also on grass6 (not tested, should be enough
> to backport the pygrass.modules.Module class).

The GUI for GRASS module in the plugin is also generated based on
--interface-description, qgm files are only used to define a subset of
module's options or to override option attributes (like label) if
necessary. So it is already implemented, but always combined with qgm,
skipping qgm, it maybe used to generate generic UI for any module.
Using qgm gives more power, for example table field combo options
based on current layer selected as input, setting input type from
input layer, selecting feature categories in map canvas and so on.

You may be interested in
https://github.com/qgis/QGIS/blob/master/src/plugins/grass/qgsgrassmodule.cpp

Do you see a possibility how we could join the effort?

Radim

> Best regards
>
> Pietro
>
> On Mon, Mar 23, 2015 at 7:56 PM, Radim Blazek  wrote:
>> Hi all,
>>
>> I have finally launched the crowdfunding campaign to support the GRASS
>> plugin upgrade. Briefly, it covers upgrade to GRASS 7, browser
>> integration, drag-and-drop import and new vector editing. All the
>> details are available here:
>>
>> http://www.gissula.eu/qgis-grass-plugin-crowdfunding/
>>
>> Please propagate this info to all relevant channels, national mailing lists 
>> etc.
>>
>> Radim
>> ___
>> grass-dev mailing list
>> grass-...@lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-dev
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Vaclav Petras
On Tue, Mar 24, 2015 at 2:00 AM, Pietro  wrote:

> Hi Radim,
>
> together with Francesco Geri, last week we started to write a first
> draft that generate the GUI for the GRASS module dynamically (based on
> the xml generated with: --interface-description), so far it is based
> on grass7 but should work also on grass6 (not tested, should be enough
> to backport the pygrass.modules.Module class).
>
> Hi Pietro and Francesco,

this sounds good. Are you speaking about QGIS GUI (in Python) generated
from --interface-description? Do you think it would be possible to write it
in a way which would be GUI framework independent so that it is usable in
both GRASS and QGIS? The GUIs for modules in GRASS are quite good now but
the code should be rewritten and this would be a great way how to get this
new implementation.

Vaclav


> Best regards
>
> Pietro
>
> On Mon, Mar 23, 2015 at 7:56 PM, Radim Blazek 
> wrote:
> > Hi all,
> >
> > I have finally launched the crowdfunding campaign to support the GRASS
> > plugin upgrade. Briefly, it covers upgrade to GRASS 7, browser
> > integration, drag-and-drop import and new vector editing. All the
> > details are available here:
> >
> > http://www.gissula.eu/qgis-grass-plugin-crowdfunding/
> >
> > Please propagate this info to all relevant channels, national mailing
> lists etc.
> >
> > Radim
> > ___
> > grass-dev mailing list
> > grass-...@lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/grass-dev
> ___
> grass-dev mailing list
> grass-...@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Vaclav Petras
On Tue, Mar 24, 2015 at 5:56 AM, Radim Blazek 
wrote:

> >> Are there functions in time series implementation which need to be
> >> called directly from the plugin or everything may be done just calling
> >> t.rast.* modules?
> >
> > Most of the temporal functionality is available through the temporal
> > modules. However some important algorithms (temporal re-sampling) are
> > available only in the Python framework. This is needed for time series
> > animation creation. Using the framework directly will speed things up,
> > because the module calls, the parsing and interpretation of the module
> > outputs can be avoided.
>
> If it should be used for dynamic animation in QGIS canvas you could
> consider the possibility to subclass raster renderer in Python and
> insert it into raster layer pipe from Python plugin.
>

Speaking about animations, some things from GRASS GIS GUI could be perhaps
used directly in the same was as Tcl/Tk NVIZ is used in processing for
GRASS 6. Animation tool is one of them. This would be great since we would
get al least some functionality/code sharing between GRASS and QGIS GUIs
which is otherwise not possible due to Python/wxPython and C++/Qt (and
would be only possible if both things would be at least in the same
language).

This is of course not fulfilling the requirement to be general, i.e. work
with other data providers in QGIS, but surely some things just have to be
like that if they are using GRASS-specific formats (temporal data) or
algorithms (e.g. algorithms to work with temporal data, their topology,
...).

Vaclav
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

[Qgis-developer] GRASS rasters in Processing?

2015-03-24 Thread Paolo Cavallini
Hi all,
I noticed that GRASS rasters are not usable directly in Processing: is
there a technical reason for this, or they are just filtered out from
the list of available layers?
On the other hand, vectors are available for analysis, but QGIS gets
stuck at 100% CPU forever for a command (Split lines with lines, and an
error[0] for gdalogr:gridinvdist.

GDAL execution console output
Unable to open input datasource
"/home/paolo/Documents/Didattica/Corsi_Formazione_Faunalia/QGIS/QGIS_data/grass/Toscana_corso/PERMANENT/dtm_points/1_point".

To me this seems both a bug (do not show layers for which an analysis
cannot be run) and a feature request (support GRASS raster and vectors
as Processing input).
Am I wrong? If confirmed, I'm going to open the relevant tickets.

All the best.
-- 
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Radim Blazek
Hi Soeren

On Tue, Mar 24, 2015 at 10:04 AM, Sören Gebbert
 wrote:
> 2015-03-24 9:40 GMT+01:00 Radim Blazek :
>> I completely agree that Python would be better, the advantages of
>> Python are obvious and that would be definitely my choice if I had to
>> start from scratch. Un(fortunately) the GRASS plugin + qgsgrassgislib
>> have already 22500 lines of C++ so porting to Python is not an option
>> and mixing C++ in single plugin either (as far to my knowledge).
>
> Indeed, porting the C++ code to Python is a large effort. However,
> maybe you can define a stretch-goal in the crowd funding campaign? If
> this goal is met, then you have enough funds to port the C++ code to
> Python and you can add more features?

I don't have any serious estimation how much porting from C++ to
Python costs, but new line of code costs 10-50euro (according to quick
internet search). To be really very modest, say that porting would
cost 2 euro per line, i.e. 22500*2 = 45000 euro for somethings which
brings no new features to users. That is not something I would ever
propose.

> I think that using C++ and Python in a Plugin shouldn't be a big
> problem in my humble opinion. The main issue would be that the C++
> code of the data provide will be part of QGIS and the Python code that
> makes use of the GRASS data provider will be a separate GRASS Python
> QGIS plugin.

The plugin and the provider are sharing some C++ code (qgsgrass and
qgsgrasslib). To port the plugin to Python you also have to write and
maintain Python bindings for that shared classes which is just extra
work.

> Maybe this approach will allow to implement several
> independent Python plugins that make use of the GRASS data provider to
> implement specific algorithms?

That should not depend on the GRASS plugin in C++. If you write Python
bindings for the provider, you can use it (non standard)  in your
Python plugin. I believe however that plugins implementing algorithms
should be preferably provider independent.

>> Are there functions in time series implementation which need to be
>> called directly from the plugin or everything may be done just calling
>> t.rast.* modules?
>
> Most of the temporal functionality is available through the temporal
> modules. However some important algorithms (temporal re-sampling) are
> available only in the Python framework. This is needed for time series
> animation creation. Using the framework directly will speed things up,
> because the module calls, the parsing and interpretation of the module
> outputs can be avoided.

If it should be used for dynamic animation in QGIS canvas you could
consider the possibility to subclass raster renderer in Python and
insert it into raster layer pipe from Python plugin.

>>> Btw: Otto Dassau and i mentioned your crowd funding idea at the
>>> FOSSGIS in Germany two weeks ago. It is on Youtube[2] but only in
>>> German.

Thank you a lot!

Radim
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Sören Gebbert
Hi Radim,

2015-03-24 9:40 GMT+01:00 Radim Blazek :
> Hi Soeren,
> thanks for your reaction. I remember we already discussed the
> possibility to move to Python.
>
> On Mon, Mar 23, 2015 at 9:19 PM, Sören Gebbert
>  wrote:
>> Hi Radim,
>> this is a beautiful idea and i hope you will get plenty of funds.
>>
>> I have some questions regarding the implementation, since this is not
>> mentioned in the project description:
>>
>> Do you plan to implement the plugin in C++ only, or will you try to
>> combine C++ (data provider) and Python (all the rest)? The reason i am
>> asking is, that using Python for the user interaction, module calling,
>> vector editing and mapset/location handling would allow us GRASS
>> developer to provide possible improvements and bugfixes for the plugin
>> more easily. For example, the time series handling [1] in GRASS GIS is
>> mainly implemented in Python and provides a Python API that could be
>> used in the QGIS GRASS Plugin to implement time series analysis
>> support.
>> Using the QGIS Python plugin approach will reduce the need for
>> compilation, which allows much faster development of modifications and
>> bugfix testing.
>
>
> I completely agree that Python would be better, the advantages of
> Python are obvious and that would be definitely my choice if I had to
> start from scratch. Un(fortunately) the GRASS plugin + qgsgrassgislib
> have already 22500 lines of C++ so porting to Python is not an option
> and mixing C++ in single plugin either (as far to my knowledge).

Indeed, porting the C++ code to Python is a large effort. However,
maybe you can define a stretch-goal in the crowd funding campaign? If
this goal is met, then you have enough funds to port the C++ code to
Python and you can add more features?

I think that using C++ and Python in a Plugin shouldn't be a big
problem in my humble opinion. The main issue would be that the C++
code of the data provide will be part of QGIS and the Python code that
makes use of the GRASS data provider will be a separate GRASS Python
QGIS plugin. Maybe this approach will allow to implement several
independent Python plugins that make use of the GRASS data provider to
implement specific algorithms?

> Are there functions in time series implementation which need to be
> called directly from the plugin or everything may be done just calling
> t.rast.* modules?

Most of the temporal functionality is available through the temporal
modules. However some important algorithms (temporal re-sampling) are
available only in the Python framework. This is needed for time series
animation creation. Using the framework directly will speed things up,
because the module calls, the parsing and interpretation of the module
outputs can be avoided.

Many thanks for the QGIS GRASS Plugin
Best regards
Soeren

> Radim
>
>> The data provider and vector editing helper classes must be of course
>> implemented in C++ and should stay in the QGIS source tree.
>>
>> Best regards
>> Soeren
>>
>> [1] http://ifgi.uni-muenster.de/~epebe_01/tgrass.pdf
>>
>> Btw: Otto Dassau and i mentioned your crowd funding idea at the
>> FOSSGIS in Germany two weeks ago. It is on Youtube[2] but only in
>> German.
>>
>> [2] https://www.youtube.com/watch?v=rxmPbh2igmM&t=1407
>>
>> 2015-03-23 19:56 GMT+01:00 Radim Blazek :
>>> Hi all,
>>>
>>> I have finally launched the crowdfunding campaign to support the GRASS
>>> plugin upgrade. Briefly, it covers upgrade to GRASS 7, browser
>>> integration, drag-and-drop import and new vector editing. All the
>>> details are available here:
>>>
>>> http://www.gissula.eu/qgis-grass-plugin-crowdfunding/
>>>
>>> Please propagate this info to all relevant channels, national mailing lists 
>>> etc.
>>>
>>> Radim
>>> ___
>>> grass-dev mailing list
>>> grass-...@lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/grass-dev
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [Qgis-developer] [GRASS-dev] QGIS GRASS Plugin Upgrade Crowdfunding

2015-03-24 Thread Radim Blazek
Hi Soeren,
thanks for your reaction. I remember we already discussed the
possibility to move to Python.

On Mon, Mar 23, 2015 at 9:19 PM, Sören Gebbert
 wrote:
> Hi Radim,
> this is a beautiful idea and i hope you will get plenty of funds.
>
> I have some questions regarding the implementation, since this is not
> mentioned in the project description:
>
> Do you plan to implement the plugin in C++ only, or will you try to
> combine C++ (data provider) and Python (all the rest)? The reason i am
> asking is, that using Python for the user interaction, module calling,
> vector editing and mapset/location handling would allow us GRASS
> developer to provide possible improvements and bugfixes for the plugin
> more easily. For example, the time series handling [1] in GRASS GIS is
> mainly implemented in Python and provides a Python API that could be
> used in the QGIS GRASS Plugin to implement time series analysis
> support.
> Using the QGIS Python plugin approach will reduce the need for
> compilation, which allows much faster development of modifications and
> bugfix testing.


I completely agree that Python would be better, the advantages of
Python are obvious and that would be definitely my choice if I had to
start from scratch. Un(fortunately) the GRASS plugin + qgsgrassgislib
have already 22500 lines of C++ so porting to Python is not an option
and mixing C++ in single plugin either (as far to my knowledge).

Are there functions in time series implementation which need to be
called directly from the plugin or everything may be done just calling
t.rast.* modules?

Radim

> The data provider and vector editing helper classes must be of course
> implemented in C++ and should stay in the QGIS source tree.
>
> Best regards
> Soeren
>
> [1] http://ifgi.uni-muenster.de/~epebe_01/tgrass.pdf
>
> Btw: Otto Dassau and i mentioned your crowd funding idea at the
> FOSSGIS in Germany two weeks ago. It is on Youtube[2] but only in
> German.
>
> [2] https://www.youtube.com/watch?v=rxmPbh2igmM&t=1407
>
> 2015-03-23 19:56 GMT+01:00 Radim Blazek :
>> Hi all,
>>
>> I have finally launched the crowdfunding campaign to support the GRASS
>> plugin upgrade. Briefly, it covers upgrade to GRASS 7, browser
>> integration, drag-and-drop import and new vector editing. All the
>> details are available here:
>>
>> http://www.gissula.eu/qgis-grass-plugin-crowdfunding/
>>
>> Please propagate this info to all relevant channels, national mailing lists 
>> etc.
>>
>> Radim
>> ___
>> grass-dev mailing list
>> grass-...@lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-dev
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

[Qgis-developer] Sponsorship page and logos

2015-03-24 Thread Paolo Cavallini
Hi all.
I'm glad announcing several new sponsors, and many donors:
http://www.qgis.org/en/site/about/sponsorship.html
These are vital for the progress of the project: please keep on
donating, and spread out the work, suggesting others to do the same.
All the best, and thanks to all!
-- 
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer