| 244 | |
| 245 | |
| 246 | == Reports == |
| 247 | === Bonding Period === |
| 248 | '''Introduce myself in soc and dev lists'''\\ |
| 249 | After being accepted as a student for GSoC 2018, I introduced my self in SOC and grass-dev lists on 24th of April [0]. |
| 250 | |
| 251 | '''Get in contact with my mentors'''\\ |
| 252 | At the same time, I got in contact with my mentors, Moritz Lennert and Roberto Marzocchi. |
| 253 | I corresponded with them by email more or less every day from the beginning to the end of the bonding period describing all the activities that I was carrying out [0][1]. I asked them suggestions about the best tool to set-up my dev environment, how to do that, etc. |
| 254 | I also better detailed my proposal explaining to them the starting point of the project, the procedure, the algorithm and I asked them for hints and feedback. |
| 255 | I shared immediately with them and the grass-dev list all the necessary information and all the new features like links to the wiki page, GitHub repository, schemas and description of the project, etc. |
| 256 | |
| 257 | '''Prepare the wiki page about the project and keep it up to date'''\\ |
| 258 | I requested my OSGeo user ID on 26th of April and, once received, I created my project wiki page [2] and added the link to the GSoC 2018 Accepted proposals page [3]. |
| 259 | The wiki page includes: |
| 260 | General information about the project (title, mentors, links to the proposal and GitHub repository, etc.); |
| 261 | A brief description of the project; |
| 262 | Link to general and detailed schemas of the procedure to better describe the whole workflow; |
| 263 | Goal; |
| 264 | Timeline of tasks and deliverables. |
| 265 | After discussing with my mentors, I have better detailed the timeline adding specific tasks for each week and the deliverables for the evaluations. |
| 266 | I will keep my wiki page constantly up to date and I’ll add weekly reports following the instructions in the GSoC Recommendations for Student page [4]. |
| 267 | |
| 268 | '''Set up the GitHub repository of the project'''\\ |
| 269 | I chose GitHub as a public repository for the development of the GRASS GIS module for the automatic detection of cloud and shadow in Sentinel 2 images, under the guidance of my mentors. I studied the GitHub documentation [5] and followed tutorials [6] in order to understand how it works and how to use it. After that, I set up my GitHub repository [7] and I started committing some test files. I added the link to the GSoC 2018 Accepted proposals page [3], to my wiki page [2] and I shared it with my mentors and the dev community. |
| 270 | My repository is licensed under the GNU General Public License v3.0, according to the licence of GRASS GIS. |
| 271 | |
| 272 | '''Follow the procedure for access to the GRASS-Addons-SVN repository'''\\ |
| 273 | I requested the write access to the GRASS-Addons-SVN repository following the official procedure and now I have been added to the grass-addons contributors' list. This step was necessary to submit the code as a GRASS GIS addon at the end of the GSoC 2018 |
| 274 | |
| 275 | '''Developer environment'''\\ |
| 276 | I checked and updated my developer environment and installed all the necessary libraries and dependencies so as to be ready to start coding after the bonding period. |
| 277 | |
| 278 | '''Familiarize myself with GRASS Python scripting library and the writing of GRASS module'''\\ |
| 279 | During the bonding period, I took lots of time to get familiar with GRASS Python scripting library and the writing of a GRASS module. First of all, I started from the community practices about how to contribute to GRASS GIS [8]. Then I studied technical issues like function definition following the official documentation of GRASS Python scripting library [9]. I also investigated the existing scripts [10] [11] to better understand how they work and how to structure addon code. |
| 280 | During this phase, I made some coding tests that I shared with my mentors and the dev community through my repository. |
| 281 | |
| 282 | '''Elaborate a schema of the algorithm'''\\ |
| 283 | In order to better explain and define all the steps and procedures of the algorithm to be implemented as a GRASS addon, I elaborate a general workflow schema and specific diagrams for each procedure (cloud detection, shadow detection, etc.) [12]. For the proper and complete consultation of the schemas, please use the google drive app diagram.io. |
| 284 | |
| 285 | '''Share and discuss it with the community list'''\\ |
| 286 | Obviously, I shared everything with my mentors and the dev community. I started a new thread on the list adding all the necessary and useful links (wiki, repository, schema and full description of the project) and asking explicitly for feedback and hints [13]. |
| 287 | |
| 288 | |
| 289 | [0] https://lists.osgeo.org/pipermail/grass-dev/2018-April/088254.html \\ |
| 290 | [1] https://lists.osgeo.org/pipermail/grass-dev/2018-May/088314.html \\ |
| 291 | [2] https://trac.osgeo.org/grass/wiki/GSoC/2018/CloudsAndShadowsDetection \\ |
| 292 | [3] https://wiki.osgeo.org/wiki/Google_Summer_of_Code_2018_Accepted \\ |
| 293 | [4] https://wiki.osgeo.org/wiki/Google_Summer_of_Code_Recommendations_for_Students \\ |
| 294 | [5] https://guides.github.com/ \\ |
| 295 | [6] https://www.youtube.com/githubguides \\ |
| 296 | [7] https://github.com/RobiFag/GRASS_clouds_and_shadows \\ |
| 297 | [8] https://trac.osgeo.org/grass/wiki/HowToContribute \\ |
| 298 | [9] https://grass.osgeo.org/grass75/manuals/libpython/script_intro.html \\ |
| 299 | [10] https://trac.osgeo.org/grass/browser/grass/trunk/scripts \\ |
| 300 | [11] https://trac.osgeo.org/grass/browser/grass-addons/grass7 \\ |
| 301 | [12] https://drive.google.com/file/d/1KYEKvNBurBFHw1xUTLjM0PW80Z-7br81/view?usp=sharing \\ |
| 302 | [13] https://lists.osgeo.org/pipermail/grass-dev/2018-May/088369.html \\ |