= Bringing pyModis to the web through ZOO-Project =
{{{#!table class="listing"
||=Student Name =||Chingchai Humhong ||
||=Organization =||[http://www.osgeo.org OSGeo - Open Source Geospatial Foundation]||
||=Mentors =||Luca Delucchi and Gerald Fenoy ||
||=Title =||Bringing pyModis to the web through ZOO-Project ||
||=Sources =||[http://zoo-project.org ZOO-Project],[http://www.pymodis.org pyModis] ||
}}}
== Brief description of your idea ==
The pyModis project has been developed and used to work with MODIS data, it provides wxPython user interfaces which are able to download and process data using [http://www.pymodis.org/scripts/software.html pyModis scripts]. pyModis depends on a desktop graphical user interface which does not make it directly usable from a web application. The idea of this GSoC proposal is to bring pyModis to the web by publishing Python Web Processing Services using the ZOO-Project technology accessible through a minimal web application.
{{{
An idea which can be implemented for the future, based on this initial work, include the creation of new services by combining pyModis, GRASS, OTB and SAGA-GIS services.
}}}
== State of the software before GSoC ==
Currently pyModis is able to run on a local computer but cannot be directly remotely invoked on-demand. ZOO-Project is able to handle services implemented in the Python language but do not offer any pyModis capabilities.
== State of the software after GSoC ==
pyModis capabilities will be directly available online, a minimal User Interfaces will be provided and pyModis services would be able to be remotely invoked through ZOO-Project using the WPS protocol, so from any client application providing the WPS capabilities, such as QGIS for instance.
== Schedule ==
Prior to the start of the GSoC period, I will learn in more details every of the involved technologies, starting with ZOO-Project and pyModis. First, by learning how to write zcfg and Python service should be implemented for ZOO-Project, then services that use specific pyModis capabilities. To finish, I will have a deep look in the Hogan templating system used by the ZOO-Client (part of the ZOO-Project). Having learnt pyModis scripts in details, I should be able to evaluate the commonly used data types to be taken into account during the User Interface design and anticipate the HTML elements to use.
{{{#!table class="listing"
||= Timeline =||= TODO =||= Status =||
|| 23 – 31 May 2016 || - Starting with ZOO-Project and pyModis by learning how to write ZOO Service Configuration File (ZCFG) and Implementing the Python Service. || --- ||
|| 1 – 25 June 2016 || - Implementation of pyModis WPS services corresponding to an available script.[[br]] - Development made in the ZOO-Project (GRASS, OTB and SAGA processing support) by bringing MODIS data to the web. || --- ||
|| 26 June – 10 July 2016 || - Creation of the first version of the template used by the web application to automatically generate the HTML form for accessing pyModis WPS services. || --- ||
|| 11 – 25 July 2016 || - Testing template and design user interfaces of web mapping application. || --- ||
|| 26 July – 2 August 2016 || - Update the template for the web application to take into account potential new type of input. || --- ||
|| 3 – 5 August 2016 || - Usability testing template system and web mapping application. || --- ||
|| 6 – 9 August 2016 || - Stringent testing and bug fixes full system. || --- ||
|| 10 – 17 August 2016 || - Documenting the web application and publication on the ZOO-Project web site as an example application. || --- ||
}}}
On the last day of each week, I will write a blog post reporting all the work done during the past week.
== Reports ==
=== Week 1 ===
==== During Bounding period ====
* I have been contacted with my mentors. We discuss to proceed with the work to develop something into pyModis and Implementation ZOO-Services. I learning introduction to the ZOO-Project and pyModis.
==== 1. What did you get done this week? ====
* I installed Ubuntu 14.04.4 LTS on my laptop.
* I installed pyModis branch 2.0 support also Python 3 follow on mentors to recommend.
* I installed ZOO-Project on web server and ZOO-Kernel linked against Python 3.
* I Starting with ZOO-Project and pyModis by learning how to write ZOO Service Configuration File (ZCFG) and Implementing the Python Service as images shown below.
==== 2. What do you plan on doing next week? ====
* Next Week I plan to Implement pyModis WPS services corresponding to an available script and made in the ZOO-Project by bringing MODIS data to the web.
==== 3. Are you blocked on anything? ====
* Right now, I am not blocked on anything, but I think my work is quite slow because I do not have experience in using Python. Although, I had several difficulties on setting some environments, I had solved that. I would like to thanks my mentors (Gérald Fenoy and Luca Delucchi) and my advisor Sittichai Choosumrong who helped me to solve my problems.
==== Screenshots ====
{{{
#!html
}}}
=== Week 2===
==== 1. What did you get done this week? ====
This week I have been on the implement pyModis WPS services corresponding to an available script and made in the ZOO-Project by bringing MODIS data to the web.
==== 2. What do you plan on doing next week? ====
* Next Week I planning to finish the implementation of pyModis as a web service.
* I will start to test Module to download MODIS as a WPS service.
==== 3. Are you blocked on anything? ====
* No, but at this moment I have some issue to configuration pyModis to working with ZOO-Project.
Below is the link to the branch I am working on
https://github.com/chingchai/pyModis/tree/gsoc-2016/zoo-pymodis/
==== Screenshots ====
=== Week 3===
==== 1. What did you get done this week? ====
This week I still facing some problems to configuration pyModis to working with ZOO-Project. The pyModis is inform warnings in ZOO-Service when execute on web browser 'WxPython missing, no GUI enabled'. But I test pyModis WPS Service with ZOO-Kernel linked against Python 2 and pyModis 1.0.2 It works [1]
==== 2. What do you plan on doing next week? ====
* Next Week I planning to configuration GRASS, OTB and SAGA processing support in the ZOO-Project by bringing MODIS data to the web.
==== 3. Are you blocked on anything? ====
* None
Below is the link to the branch I am working on
https://github.com/chingchai/pyModis/tree/gsoc-2016/zoo-pymodis/
==== Screenshots ====
{{{
#!html
}}}
=== Week 4===
==== 1. What did you get done this week? ====
This week I finished downmodis module to download MODIS HDF files from NASA repository as a WPS service. I have also updated document and code in GitHub [https://github.com/chingchai/pyModis/tree/gsoc-2016/zoo-pymodis/].
==== 2. What do you plan on doing next week? ====
* Next Week I planning to creation of the first version of the template used by the web application to automatically generate the HTML form for accessing pyModis WPS services.
==== 3. Are you blocked on anything? ====
* None.
Below is the link to the branch I am working on
https://github.com/chingchai/pyModis/tree/gsoc-2016/zoo-pymodis/
==== Screenshots ====
=== Week 5===
Not reported yet.
== Student's Biography ==
=== Programming and GIS ===
I am a 28 year-old 2rd year student at the Naresuan University in Thailand. I am pursuing my Bachelors in Geography and Masters by research in Geographic Information Science. GIS is my specialization for research in my Masters. I am looking forward to pursue a career in the fields with GIS as a core concept. I am interested in open source development as it is extremely helpful to developers everywhere to create new and improved programs to solve real world problems. I have been working on WPS services implementation as a part of my research in the field of Spatial Informatics and started learning about the ZOO-Project WPS. After discussing my idea with the ZOO-Project WPS team, their feedback helped me a lot in refining and redesigning my idea.
=== Computing experience ===
I am quite used to various GIS related softwares like ZOO-Project WPS, GRASS, QGIS, PostgreSQL/PostGIS, pgRouting, OpenLayers and OpenStreetMap.
* '''OpenSource GIS:''' QGIS, GRASS GIS, gvSIG, uDig, MapWindow GIS, Marble, FWTools, GDAL/OGR, GeoServer, MapServer, GeoMoose, GeoNode, OpenLayers, PostgreSQL/PostGIS, pgRouting, OSGeo Live, OpenGeoSuite, GeoExt and Heron MC.
* '''Operating Systems:''' Microsoft Windows and Linux
* '''Programming languages:''' HTML, XML, CSS, PHP, JavaScript, Python, C++ and SQL
Good Knowledge of Web Mapping Application Development, working knowledge of computers using spreadsheets and Geospatial Databases system.
=== Research experience ===
* Comparisons of Drainage Network Delineation from Different Thresholds of Digital Elevation Models. Geoinfotech 2016, 3-5 February 2016, Queen Sirikit National Convention Center (QSNCC), Bangkok, Thailand.
* Real-time rainfall Interpolation based on Web Processing Service Using FOSS4G and Open Data. FOSS4G-Asia 2014, 2-5 December 2014, Asian Institute of Technology, Pathumthani, Thailand.
* Developing Web-Enabled Considering Decision Support System for Staff Dormitory Service in Naresuan University using pgRouting. The 4th Conference Geoinformatics Naresuan, 31 October 2014, Naresuan University, Phitsanulok, Thailand.
* A Cloud-Based Platform for Geological Data Acquisition via Mobile Device. The 35th Asian Conference on Remote Sensing (ACRS 2014), 27- 31 October 2014, Nay Pyi Taw, Myanmar.
* Fall Biomass Assessment in Mea Hong Son Province by Using MODIS Data. The 1st Conference Geoinformatics Naresuan, 21 September 2010, Naresuan University, Phitsanulok, Thailand.
* Wild Fire Risk Analysis from Hotspots and Environmental Factors in Mae Hong Son Province. GEOINFOTECH 2010 Conference, 15-17 December 2010, IMPACT Exhibition and Convention Center, Nonthaburi, Thailand.
[https://wiki.osgeo.org/wiki/Bringing_pyModis_to_the_web_through_ZOO-Project_GSoC_2016 OSGeo wiki]
[https://wiki.osgeo.org/wiki/Google_Summer_of_Code_2016_Accepted Google Summer of Code 2016 Accepted]