[SoC] Final Report - Gisquick platform extension

David těthal davidtethal at gmail.com
Tue Aug 14 06:16:45 PDT 2018


*Hello everyone,my final report is listed bellow.*

*Abstract*
The main goal of this project is extend a basic filtering tool that was
developed as a part of my final thesis. Originaly it is focused on
spatio-temporal vector data filtering only with simple animation that was
implemented as a proof of concept. This project focuses on support for
general spatio-temporal both vector and raster data and adds more
functionality into Gisquick web client that makes map features selection
more powerful with various of options.

Another important part of this project was focused on Gisquick plugin for
QGIS. Before any QGIS project may be used in Gisquick map platform, it has
to be published using Gisquick plugin for QGIS. This project add more
options for publishing raster and vector layers. Publication with new
functionality in Gisquick plugin gives user real time data validation with
various option and in the same time keeps process simple and easy to handle.

*State of Gisquick spatio-temporal support before GSoC 2018*
There was already simple tool implemented in Gisquick before the work on
GSoC 2018 begun. It was made during my final thesis mostly as a proof of
concept focused only on vector filtration without many functions or design
that corresponded to other platform components. Web client offered double
range slider and time pickers with animation button. It allowed used to
filter data using slider or exact range and make simple animation without
any advanced settings.

In Gisquick plugin for QGIS, setting of time layers had just two basic
functions. There were two como-boxes for each vector layer. First one
defined layer attribute that contained time values. Second was used for
setting of time format that displayed date and time in web client. Once
time layers were set, other needed parameters were computed but in case of
error user would not notice that any error occurred and what was a reason.

*What this project brought to the Gisquick*
As mentioned before all the work done within this project might be split
into two independent parts. Gisquick web client and Gisquick plugin for
QGIS.

*Web client:*
- general settings was made. It allows user to edit animation speed,
animation time step and  activate cumulative mode. This may be used to
handle different kinds of data in different way. Other settings change
behavior of double range slider and whole time tool. For example filtered
results might be kept in the map even when another tool is used.
- option of filtering all layers consists different attributes. This may be
activated only if option 'select all visible vector layers' is selected.
- previous double range slider was replaced by double range slider used in
Vuetify material components framework. There was not double range slider
available in Vuetify components at the time of creating proof of concept
during my final thesis.
- whole new component that contains interface for raster data filtering was
made. It has same design as vector one but functionality is different.
There is not double range slider and settings provides different options.
- all the code that was related to time tool was refactored in separate
branch. Solutions implemented before refactoring did not have any common
data structure or concept. The main reason was that no-one know how should
final time tool looks and what exact functionality it should has. That is
why my development was always consulted with my mentor and main developer
in the same person. Code refactoring also removed many duplicity and split
one giant component into various of small one that will make future
development easier and code more readable.
- deployment into docker image was made in the beginning of GSoC 2018. This
images were kept updated and running instance of docker container in server
provided by my university was done. This allowes everyone to see the actual
state of web client without need of any extra effort. Current demo
application contains two sample projects with raster and vector layers.
*QGIS plugin:*
- validation of selected time attribute for vector layers. This was long
and complicated process that involved many discussions with my mentors
before the optimal solution was found. It required many changes that were
not used in the final solution. Time validation is optional. When it is
activated, it check selected attribute for each vector layer right after it
is selected. In case that it does not contain valid date the error message
is displayed and user can not continue into another page of publication
wizard.
- process of variables computation needed for time tool in web client was
simplified. Solution made douring final thesis development was robust but
too complicated. Especially in big project with lot of data, it cost a lot
of time for computation of all variables.
- update from Python2 to Python3 and Qt4 to Qt5. For this purpose qgis2to3
and pyrcc5 were used. There were also big manual changes in the code that
had to be done.
- plugin was extended by options that allows user easily define all the
variables needed for raster filtration on web client. Raster layers does
not contain time stamp by default, that is why it has to be set during
publication process. Gisquick plugin offers three possibilities. Manual and
interval time definition for each raster layer or time recognition from
layer name.

There were also many bugs fixed and small changes made. They are not
included in general overview but all changes and corresponding commits may
be tracked using issues or official timeline

*Gisquick spatio-temporal support after GSoC 2018*
After discussion with my mentors we agreed on future cooperation on
Gisquick map platform. Development that was made during GSoC 2018 will be
merged into official Gisquick repository for Gisquick client and Gisquick
plugin for QGIS. After that time tool will be tested together with other
tools that are being migrated from Angular into Vue framework at the time.
Once both QGIS plugin and web client will be merged, the official
documentation will be extended by new time tool functionality.

Development on the time tool on web client and plugin for QGIS will
continue in the future, but there will not be new features. Development
will consist mostly testing and fix of bugs.

*Sample projects*
Links mentioned in this section may not be active in the future.

Sample project with raster layers. Project contains raster layers
containing thermal photos of Jockey's Ridge State Park in Virginia
http://geo102.fsv.cvut.cz:8001/?PROJECT=demo/street

Sample project with vector layers. Project contains Prague districts with
parcels selected by their date of change in cadastre
http://geo102.fsv.cvut.cz:8001/?PROJECT=praha/praha-parcely

*Permanent links*

Project timeline:
https://github.com/davidtethal/gisquick-gsoc2018/wiki/GSoC-2018-Extension-of-Gisquick-platform

Working repositories:
- Gisquick plugin for QGIS
https://github.com/davidtethal/gisquick-qgis-plugin-gsoc2018
- Gisquick web client
https://github.com/davidtethal/gisquick-gsoc2018/tree/vue-client

Commit history
- Gisquick plugin for QGIS
https://github.com/davidtethal/gisquick-qgis-plugin-gsoc2018/commits/master
- Gisquick web client
https://github.com/davidtethal/gisquick-gsoc2018/commits/vue-client

Issues history
- Gisquick plugin for QGIS
https://github.com/davidtethal/gisquick-qgis-plugin-gsoc2018/issues?q=is%3Aissue+is%3Aclosed
- Gisquick web client
https://github.com/davidtethal/gisquick-gsoc2018/issues?q=is%3Aissue+is%3Aclosed

Regards,
David Tethal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/soc/attachments/20180814/3b0d682f/attachment.html>


More information about the SoC mailing list