[QGIS-Developer] QGIS-Developer Digest, Vol 200, Issue 33

Benjamin Jakimow benjamin.jakimow at geo.hu-berlin.de
Wed Jun 29 00:54:10 PDT 2022


Hi Michael,

call "import processing" before "import qgis.processing"

Calling "import processing" will monkey-patch the request "run(...)" to 
qgis.processing.
This is automatically done when starting the Desktop QGIS.

Greetings,
Benjamin




On 2022-06-29 07:14, Egenolf, Michael via QGIS-Developer wrote:
> Thank you Benjamin,
> 
> I addapted the batch file with the python path:
> 
> set
> PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python;%OSGEO4W_ROOT%\apps\qgis-ltr\python\plugins
> 
> I hope this is correct? At least the geoprocessing libary is loading...
> 
> Now I am geeting the following error:
> 
> 1) Code:
> 
> import qgis.core
> from qgis import processing
> 
> 
> #### try sys.path.extend()
> 
> input = r'C:\test\input.shp'
> outputWithLayer = r'C:\test\result.shp '  # kannst den Layer lokal in
> einem Ordner speichern z.B. C:\test\shpfile.shp
> 
> 
> 
> def buffer(input, outputWithLayer):
>     buffer_result = processing.run("native:buffer", {
>         'INPUT': input,
>         'DISTANCE': 10000,
>         # 'DISSOLVE': True,# Falls du alle Polygonen mergen willst
>         'OUTPUT': outputWithLayer
>     })
> 
> 
> bufferresult = buffer(input, outputWithLayer)
> 
> print(bufferresult)
> 
> 2) result
> 
> Traceback (most recent call last):
>   File
> "C:/Users/Egenolf/AppData/Roaming/JetBrains/PyCharmCE2021.3/scratches/Test_Pyqt.py",
> line 21, in <module>
>     bufferresult = buffer(input, outputWithLayer)
>   File
> "C:/Users/Egenolf/AppData/Roaming/JetBrains/PyCharmCE2021.3/scratches/Test_Pyqt.py",
> line 13, in buffer
>     buffer_result = processing.run("native:buffer", {
> AttributeError: module 'qgis.processing' has no attribute 'run'
> 
> Process finished with exit code 1
> 
> Where can I find the run method or how do I use the native:buffer 
> otherwise
> 
> Regards
> Michael
> 
> -----Ursprüngliche Nachricht-----
> Von: QGIS-Developer <qgis-developer-bounces at lists.osgeo.org> Im
> Auftrag von qgis-developer-request at lists.osgeo.org
> Gesendet: Dienstag, 28. Juni 2022 17:50
> An: qgis-developer at lists.osgeo.org
> Betreff: QGIS-Developer Digest, Vol 200, Issue 33
> 
> Send QGIS-Developer mailing list submissions to
> 	qgis-developer at lists.osgeo.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://lists.osgeo.org/mailman/listinfo/qgis-developer
> or, via email, send a message with subject or body 'help' to
> 	qgis-developer-request at lists.osgeo.org
> 
> You can reach the person managing the list at
> 	qgis-developer-owner at lists.osgeo.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of QGIS-Developer digest..."
> 
> 
> Today's Topics:
> 
>    1. Re: PyQGIS standalone Python Scripts with pycharm - Loading
>       the processsing.run() fails/nonexisting (Benjamin Jakimow)
>    2. Problems building QGIS 3.26 using Python 3.10.5 and SIP 6.6.2
>       (Hern?n De Angelis)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 28 Jun 2022 15:37:53 +0200
> From: Benjamin Jakimow <benjamin.jakimow at geo.hu-berlin.de>
> To: qgis-developer at lists.osgeo.org
> Subject: Re: [QGIS-Developer] PyQGIS standalone Python Scripts with
> 	pycharm - Loading the processsing.run() fails/nonexisting
> Message-ID: <bc38343f-98df-3f69-62ae-2d8502d2cde9 at geo.hu-berlin.de>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
> 
> Hi Michael,
> 
> you need to add the python\plugins folder to the pythonpath as well,
> either in your batch file or PyCharm
> 
> Greetings,
> 
> Benjamin
> 
> Am 28/06/2022 um 15:17 schrieb Egenolf, Michael via QGIS-Developer:
>> Dear QGIS-Develeopers,
>> 
>> I was trying to figure out how to get going with the processing modul 
>> in Pyqgis.
>>   It seems that I am not able to load the processing tool properly.
>> 
>> 1)
>> 
>> I did make a bat file with the right pathes as followed:
>> 
>> @echo off
>> SET OSGEO4W_ROOT=C:\brk\programme\QGIS 3.16 call
>> %OSGEO4W_ROOT%\bin\o4w_env.bat call
>> %OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat
>> 
>> path %path%;%OSGEO4W_ROOT%\apps\qgis-ltr\bin
>> path %path%;%OSGEO4W_ROOT%\apps\grass\grass78\lib
>> path %path%;C:\OSGeo4W\apps\qt5\bin
>> path %path%;C:\OSGeo4W\apps\Python37\Scripts
>> 
>> set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
>> set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
>> 
>> start "Pycharm aware of QGIS" /B
>> "C:\brk\programme\PyCharm-Community_2021.3\bin\pycharm64.exe" %*
>> 
>> 
>> 2)
>> 
>> After that I am loading Pycharm and I am using  the following 
>> interpreter:
>> 
>> C:\brk\programme\QGIS 3.16\bin\python-qgis-ltr.bat
>> 
>> 3)
>> This is my python code I want to run:
>> 
>> 
>> from qgis import processing
>> 
>> input = r'dein SHP Layer'
>> outputWithLayer = 'memory '  # kannst den Layer lokal in einem Ordner
>> speichern z.B. C:\test\shpfile.shp
>> 
>> 
>> def buffer(input, outputWithLayer):
>>      buffer_result = processing.run("native:buffer", {
>>          'INPUT': input,
>>          'DISTANCE': 10000,
>>          # 'DISSOLVE': True,# Falls du alle Polygonen mergen willst
>>          'OUTPUT': outputWithLayer
>>      })
>> 
>> bufferresult = buffer(input, outputWithLayer)
>> print(bufferresult)
>> 
>> # result_layer = buffer_result['OUTPUT'] # layer =
>> QgsVectorLayer(result_layer,"test","ogr")
>> # QgsProject.instance().addMapLayer(layer)
>> 
>> 
>> 
>> 4) Result
>> 
>> Stil if I want to import processing as suggested everywhere there will 
>> always fail because the eather the modul is not importet or when I am 
>> using the buffer the run() method is not found:
>> 
>> 
>> "C:\brk\programme\QGIS 3.16\bin\python-qgis-ltr.bat"
>> C:/Users/Egenolf/AppData/Roaming/JetBrains/PyCharmCE2021.3/scratches/T
>> est_Pyqt.py
>> Traceback (most recent call last):
>>    File 
>> "C:/Users/Egenolf/AppData/Roaming/JetBrains/PyCharmCE2021.3/scratches/Test_Pyqt.py", 
>> line 13, in <module>
>>      import processing
>> ModuleNotFoundError: No module named 'processing'
>> 
>> 
>> 
>> 
>> Even after an intensive research on stackexchange/ GISstackexchange 
>> pages there is not clear solucion to this point or the solucion is not 
>> adapted to Python 3.
>> Does anybody has a good loading script or some hints on how to solve 
>> this problem?
>> 
>> 
>> Best regards
>> Michael Egenolf
>> 
>> 
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info:https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe:https://lists.osgeo.org/mailman/listinfo/qgis-developer
> 
> --
> Benjamin Jakimow, Doctoral Researcher
> Earth Observation Lab | Geography Department | Humboldt-Universit?t zu 
> Berlin
> 
> e-mail:benjamin.jakimow at geo.hu-berlin.de
> 
> phone:  +49 (0) 30 2093 6846
> mobile: +49 (0) 157 5656 8477
> fax:    +49 (0) 30 2093 6848
> mail:   Unter den Linden 6 | 10099 Berlin | Germany
> room: 2'211
> web:https://smex-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fhu%2dberlin.de%2feo%2dlab&umid=fc901b20-44de-4224-b713-e1d99e20eb3c&auth=c1c9dbefcde83ed9c8881a36adbd110cc362e9ce-344615b2f04abba6045c7a9855d90df37e53bdc2
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20220628/a9d66d06/attachment-0001.htm>
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: zRtAKFiY5K16hiJ6.png
> Type: image/png
> Size: 4367 bytes
> Desc: not available
> URL:
> <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20220628/a9d66d06/attachment-0001.png>
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: smime.p7s
> Type: application/pkcs7-signature
> Size: 5457 bytes
> Desc: S/MIME Cryptographic Signature
> URL:
> <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20220628/a9d66d06/attachment-0001.bin>
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 28 Jun 2022 17:50:12 +0200
> From: Hern?n De Angelis <variablestarlight at gmail.com>
> To: qgis-developer <qgis-developer at lists.osgeo.org>
> Subject: [QGIS-Developer] Problems building QGIS 3.26 using Python
> 	3.10.5 and SIP 6.6.2
> Message-ID: <5627189b-416e-2dbb-6ee8-ce49c41967d6 at gmail.com>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
> 
> Hi developers,
> 
> I am trying to understand some errors I get while building either QGIS
> 3.26 or the latest main branch from GitHub in openSUSE Tumbleweed. I
> normally compile the latest source every few weeks and normally things
> go fine. Last few times I compiled Python was 3.8 and 3.9 and there
> were no problems. However, recently this distribution I use has made
> Python3 = 3.10.5. SIP is 6.6.2. To my knowledge all other dependencies
> are satisfied. I wonder if the change in Python or SIP versions may
> have introduced some known incompatibility. Errors are listed below.
> Any hint is appreciated.
> 
> Thanks in advance
> 
> /H.
> 
> sip-build: An internal error occurred...
> Traceback (most recent call last):
>  ? File "/bin/sip-build", line 33, in <module>  ???
> sys.exit(load_entry_point('sip==6.6.2', 'console_scripts',
> 'sip-build')())
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
> line 37, in main
>  ??? handle_exception(e)
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/exceptions.py",
> line 81, in handle_exception
>  ??? raise e
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
> line 34, in main
>  ??? project.build()
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/project.py",
> line 244, in build  ??? self.builder.build()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line 48, in
> build  ??? self._generate_bindings()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line 277,
> in _generate_bindings  ??? buildable = bindings.generate()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/bindings.py", line 166,
> in generate  ??? spec, sip_files = parse(self.sip_file, SIP_VERSION,
> encoding,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser.py",
> line 35, in parse
>  ??? protected_is_public, include_dirs, strict).parse(sip_file)  ?
> File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
> line 1507, in parse
>  ??? self._parser.parse(self._read(sip_file, raw_sip_file),  ? File
> "/usr/lib/python3.10/site-packages/ply/yacc.py", line 331, in parse
> ??? return self.parseopt(input, lexer, debug, tracking, tokenfunc)  ?
> File "/usr/lib/python3.10/site-packages/ply/yacc.py", line 823, in
> parseopt  ??? p.callable(pslice)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/rules.py",
> line 3029, in p_typedef_decl
>  ??? instantiated = pm.instantiate_class_template(p, name_symbol,  ?
> File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
> line 1480, in instantiate_class_template  ??? instantiate_class(p,
> symbol, fq_cpp_name, tmpl_names, proto_class,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 131, in instantiate_class
>  ??? i_class.ctors = _instantiate_ctors(tmpl_names, proto_class,
> template,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 235, in _instantiate_ctors
>  ??? i_ctor.py_signature = 
> _instantiate_signature(proto_ctor.py_signature,
>  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 368, in _instantiate_signature
>  ??? i_arg = _instantiate_argument(proto_arg, proto_class, tmpl_names,
>  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 191, in _instantiate_argument
>  ??? i_arg.default_value = [_instantiate_value(v, expansions)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 191, in <listcomp>
>  ??? i_arg.default_value = [_instantiate_value(v, expansions)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 437, in _instantiate_value
>  ??? i_name = ScopedName.parse(template_string(proto_name,
> expansions))  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/templates.py",
> line 201, in template_string
>  ??? proto_str = proto_str.replace(name, value)
> AttributeError: 'ScopedName' object has no attribute 'replace'
> make[2]: ***
> [python/CMakeFiles/python_module_qgis__analysis.dir/build.make:853:
> python/analysis/build/_analysis/sip_analysispart0.cpp] Error 1
> make[1]: *** [CMakeFiles/Makefile2:5790:
> python/CMakeFiles/python_module_qgis__analysis.dir/all] Error 2
> make[1]: *** Waiting for unfinished jobs....
> 
> 
> sip-build: An internal error occurred...
> Traceback (most recent call last):
>  ? File "/bin/sip-build", line 33, in <module>  ???
> sys.exit(load_entry_point('sip==6.6.2', 'console_scripts',
> 'sip-build')())
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
> line 37, in main
>  ??? handle_exception(e)
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/exceptions.py",
> line 81, in handle_exception
>  ??? raise e
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
> line 34, in main
>  ??? project.build()
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/project.py",
> line 244, in build  ??? self.builder.build()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line 48, in
> build  ??? self._generate_bindings()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line 277,
> in _generate_bindings  ??? buildable = bindings.generate()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/bindings.py", line 166,
> in generate  ??? spec, sip_files = parse(self.sip_file, SIP_VERSION,
> encoding,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser.py",
> line 35, in parse
>  ??? protected_is_public, include_dirs, strict).parse(sip_file)  ?
> File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
> line 1507, in parse
>  ??? self._parser.parse(self._read(sip_file, raw_sip_file),  ? File
> "/usr/lib/python3.10/site-packages/ply/yacc.py", line 331, in parse
> ??? return self.parseopt(input, lexer, debug, tracking, tokenfunc)  ?
> File "/usr/lib/python3.10/site-packages/ply/yacc.py", line 823, in
> parseopt  ??? p.callable(pslice)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/rules.py",
> line 3029, in p_typedef_decl
>  ??? instantiated = pm.instantiate_class_template(p, name_symbol,  ?
> File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
> line 1480, in instantiate_class_template  ??? instantiate_class(p,
> symbol, fq_cpp_name, tmpl_names, proto_class,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 131, in instantiate_class
>  ??? i_class.ctors = _instantiate_ctors(tmpl_names, proto_class,
> template,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 235, in _instantiate_ctors
>  ??? i_ctor.py_signature = 
> _instantiate_signature(proto_ctor.py_signature,
>  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 368, in _instantiate_signature
>  ??? i_arg = _instantiate_argument(proto_arg, proto_class, tmpl_names,
>  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 191, in _instantiate_argument
>  ??? i_arg.default_value = [_instantiate_value(v, expansions)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 191, in <listcomp>
>  ??? i_arg.default_value = [_instantiate_value(v, expansions)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 437, in _instantiate_value
>  ??? i_name = ScopedName.parse(template_string(proto_name,
> expansions))  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/templates.py",
> line 201, in template_string
>  ??? proto_str = proto_str.replace(name, value)
> AttributeError: 'ScopedName' object has no attribute 'replace'
> make[2]: ***
> [python/CMakeFiles/python_module_qgis__core.dir/build.make:804:
> python/core/build/_core/sip_corepart0.cpp] Error 1
> make[1]: *** [CMakeFiles/Makefile2:5683:
> python/CMakeFiles/python_module_qgis__core.dir/all] Error 2
> 
> 
> sip-build: An internal error occurred...
> Traceback (most recent call last):
>  ? File "/bin/sip-build", line 33, in <module>  ???
> sys.exit(load_entry_point('sip==6.6.2', 'console_scripts',
> 'sip-build')())
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
> line 37, in main
>  ??? handle_exception(e)
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/exceptions.py",
> line 81, in handle_exception
>  ??? raise e
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
> line 34, in main
>  ??? project.build()
>  ? File "/usr/lib64/python3.10/site-packages/sipbuild/project.py",
> line 244, in build  ??? self.builder.build()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line 48, in
> build  ??? self._generate_bindings()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line 277,
> in _generate_bindings  ??? buildable = bindings.generate()  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/bindings.py", line 166,
> in generate  ??? spec, sip_files = parse(self.sip_file, SIP_VERSION,
> encoding,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser.py",
> line 35, in parse
>  ??? protected_is_public, include_dirs, strict).parse(sip_file)  ?
> File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
> line 1507, in parse
>  ??? self._parser.parse(self._read(sip_file, raw_sip_file),  ? File
> "/usr/lib/python3.10/site-packages/ply/yacc.py", line 331, in parse
> ??? return self.parseopt(input, lexer, debug, tracking, tokenfunc)  ?
> File "/usr/lib/python3.10/site-packages/ply/yacc.py", line 823, in
> parseopt  ??? p.callable(pslice)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/rules.py",
> line 3029, in p_typedef_decl
>  ??? instantiated = pm.instantiate_class_template(p, name_symbol,  ?
> File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
> line 1480, in instantiate_class_template  ??? instantiate_class(p,
> symbol, fq_cpp_name, tmpl_names, proto_class,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 131, in instantiate_class
>  ??? i_class.ctors = _instantiate_ctors(tmpl_names, proto_class,
> template,  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 235, in _instantiate_ctors
>  ??? i_ctor.py_signature = 
> _instantiate_signature(proto_ctor.py_signature,
>  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 368, in _instantiate_signature
>  ??? i_arg = _instantiate_argument(proto_arg, proto_class, tmpl_names,
>  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 191, in _instantiate_argument
>  ??? i_arg.default_value = [_instantiate_value(v, expansions)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 191, in <listcomp>
>  ??? i_arg.default_value = [_instantiate_value(v, expansions)  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
> line 437, in _instantiate_value
>  ??? i_name = ScopedName.parse(template_string(proto_name,
> expansions))  ? File
> "/usr/lib64/python3.10/site-packages/sipbuild/generator/templates.py",
> line 201, in template_string
>  ??? proto_str = proto_str.replace(name, value)
> AttributeError: 'ScopedName' object has no attribute 'replace'
> make[2]: ***
> [python/CMakeFiles/python_module_qgis__gui.dir/build.make:1253:
> python/gui/build/_gui/sip_guipart0.cpp] Error 1
> make[1]: *** [CMakeFiles/Makefile2:5737:
> python/CMakeFiles/python_module_qgis__gui.dir/all] Error 2
> make: *** [Makefile:156: all] Error 2
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20220628/43e5e8ef/attachment.htm>
> 
> ------------------------------
> 
> Subject: Digest Footer
> 
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> 
> 
> ------------------------------
> 
> End of QGIS-Developer Digest, Vol 200, Issue 33
> ***********************************************
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

-- 
--
Benjamin Jakimow, Doctoral Researcher
Earth Observation Lab | Geography Department | Humboldt-Universität zu 
Berlin

e-mail: benjamin.jakimow at geo.hu-berlin.de

phone:  +49 (0) 30 2093 6894
mobile: +49 (0) 157 5656 8477
fax:    +49 (0) 30 2093 6848
mail:   Unter den Linden 6 | 10099 Berlin | Germany
room: 2'222


More information about the QGIS-Developer mailing list