NSF POSE Project 2023-2025 Timeline: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(POSE project 1st quarter report)
 
 
(49 intermediate revisions by 7 users not shown)
Line 5: Line 5:
The two main goals of the project are: 1) to facilitate the adoption of GRASS GIS as a key geoprocessing engine by a growing number of researchers and geospatial practitioners in academia, governments, and industry; and 2) to expand and diversify the developer community, especially through supporting next-generation scientists to gain expertise to maintain and innovate GRASS software.
The two main goals of the project are: 1) to facilitate the adoption of GRASS GIS as a key geoprocessing engine by a growing number of researchers and geospatial practitioners in academia, governments, and industry; and 2) to expand and diversify the developer community, especially through supporting next-generation scientists to gain expertise to maintain and innovate GRASS software.


== 1st quarter report ==
Principal investigators and senior personnel:
=== Project announcement and info session ===
* Announcement on [https://grass.osgeo.org/news/2023_09_06_nsf_grant_awarded/ GRASS website]
* Info session to explain the POSE Project ([https://lists.osgeo.org/pipermail/grass-user/2023-September/083423.html Announcement on GRASS user mailing list])
* Set up collecting statistics from GitHub, X and others


=== GRASS GIS conference presentations ===
* Helena Mitasova, North Carolina State University (Principal Investigator)
* Vaclav Petras, North Carolina State University (Co-Principal Investigator)
* Anna Petrasova, North Carolina State University (Co-Principal Investigator)
* C Michael Barton, Arizona State University (Co-Principal Investigator)
* Huidae Cho, New Mexico State University (Co-Principal Investigator)
* Giuseppe Amatulli, Yale (Senior Personnel)
 
Other personnel who is joining for the execution of the grant is listed below when relevant.
 
== Y1 1st quarter report ==
=== Project Announcements and Communication ===
* Announcement on [https://grass.osgeo.org/news/2023_09_06_nsf_grant_awarded/ GRASS website].
* Info session to explain the POSE Project ([https://lists.osgeo.org/pipermail/grass-user/2023-September/083423.html Announcement on GRASS user mailing list], 2 sessions for different time zones).
* Collected statistics from GitHub, X and others and set up automated collection for GitHub.
 
=== Conference Presentations ===
* [https://petrasovaa.github.io/FUTURES-CONUS-talk/foss4gNA2023.html#/ Parallelization Tips for Geoprocessing with GRASS GIS] by Anna Petrasova at FOSS4GNA, October 2023.
* [https://petrasovaa.github.io/FUTURES-CONUS-talk/foss4gNA2023.html#/ Parallelization Tips for Geoprocessing with GRASS GIS] by Anna Petrasova at FOSS4GNA, October 2023.
* [https://wenzeslaus.github.io/grass-gis-talks/foss4gna2023.html#/ GRASS GIS: Not What You Think] by Vaclav Petras at FOSS4GNA, October 2023.  
* [https://wenzeslaus.github.io/grass-gis-talks/foss4gna2023.html#/ GRASS GIS: Not What You Think] by Vaclav Petras at FOSS4GNA, October 2023.  
Line 17: Line 28:
* [https://github.com/HuidaeCho/grass-gis-talk-foss4g-asia-2023 State of GRASS GIS: 40 Years Strong and Counting] by Huidae Cho at FOSS4G Asia, November 2023.
* [https://github.com/HuidaeCho/grass-gis-talk-foss4g-asia-2023 State of GRASS GIS: 40 Years Strong and Counting] by Huidae Cho at FOSS4G Asia, November 2023.


=== GRASS GIS workshops ===
=== Training and Workshops ===
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-foss4gna-2023 Unlock the power of GRASS GIS] by Anna Petrasova and Caitlin Haedrich at FOSS4GNA, October 2023.  
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-foss4gna-2023 Unlock the power of GRASS GIS] by Anna Petrasova and Caitlin Haedrich at FOSS4GNA, October 2023.  
* [https://github.com/ncsu-geoforall-lab/develop-tools-with-grass-foss4gna-2023 Develop Geospatial Workflows and Custom Tools with GRASS GIS] by Vaclav Petras and Corey White at FOSS4GNA, October 2023.
* [https://github.com/ncsu-geoforall-lab/develop-tools-with-grass-foss4gna-2023 Develop Geospatial Workflows and Custom Tools with GRASS GIS] by Vaclav Petras and Corey White at FOSS4GNA, October 2023.
* [https://github.com/ncsu-geoforall-lab/grass-workshop-gis-week-2023 Big Data Computing with GRASS GIS] by Anna Petrasova and Vaclav Petras at NC State GIS week, November 2023.
* [https://github.com/ncsu-geoforall-lab/grass-workshop-gis-week-2023 Big Data Computing with GRASS GIS] by Anna Petrasova and Vaclav Petras at NC State GIS week, November 2023.
* [https://github.com/ncsu-geoforall-lab/grass-gis-on-hpc-henry2/blob/8564c72e9b8929c9ef4d25ada1ef36b569991221/docs/tutorial.md GIS Week Workshop: High Performance Computing for Geospatial Analysis (GRASS GIS part)] by Vaclav Petras (main lecture lead by Andrew Petersen from NCSU OIT) at NC State GIS week, November 2023.
* [https://spatial-ecology.net/docs/build/html/COURSESAROUNDTHEWORLD/course_geocomp_ml_04-05_2024.html Geocomputation and Machine Learning for Environmental Applications] training course [https://spatial-ecology.net/course-geocomputation-machine-learning-for-environmental-applications-intermediate-level-2024/ announced]. GRASS GIS part led by Giuseppe Amatulli is free of charge thanks to the support by NSF.
=== Community Sprint Participation ===
Anna Petrasova and Vaclav Petras remotely participated in [https://wiki.osgeo.org/wiki/OSGeo_Community_Sprint_2023 OSGeo 2023 code sprint] doing PR reviews and maintenance of GRASS GIS code, documentation, and website.
=== Mentoring Program ===
* Started a development-oriented mentoring program [https://grass.osgeo.org/news/2023_10_11_mentoring_program_announced/ announced] with details available on a [https://grasswiki.osgeo.org/wiki/Mentoring_Program wiki page].
* Program now has 4 participants (from 12 responses) supported by email and video calls.
* Program already resulted in improvements to GRASS GIS core and addons:
** merged PR: [https://github.com/OSGeo/grass/pull/3206 grass.script: ensure memmap content is flushed before writing to a raster]
** radar addon toolset PR: [https://github.com/OSGeo/grass-addons/pull/949 Add i.saocom and i.sar toolsets]
Mentoring Program is a new effort started and so-far performed only by the POSE team.
=== Student Grants Program ===
Student grants [https://grass.osgeo.org/news/2023_11_09_student_grants_announced/ announced] with topics at a [https://grasswiki.osgeo.org/wiki/GRASS_GIS_Student_Grants wiki page]. Student Grants Program is an existing effort which the POSE team participates in.
=== Working Groups ===
Four [https://grasswiki.osgeo.org/wiki/Working_Groups working groups] created (scope, wiki page, coordinator, and a list of people for each).
=== Citations ===
* GRASS GIS Google Scholar [https://scholar.google.com/citations?user=gJ0ZB0cAAAAJ account] updated with more complete records.
* A [https://forms.gle/cDEvMJu7d6nvxLKn9 form] was created to collect new and missing records.
* Profile link added to GRASS website [https://grass.osgeo.org/contribute/ Contribute] and [https://grass.osgeo.org/about/citation/ Citation] page.


=== OSGeo Community Sprint participation ===
== Y1 2nd quarter report ==
Anna Petrasova and Vaclav Petras remotely participated in  
=== NSF I-Corps program ===
[https://wiki.osgeo.org/wiki/OSGeo_Community_Sprint_2023 OSGeo 2023 code sprint]
Corey White, Vaclav Petras, and Anna Petrasova participated in a 4-week long intensive mandatory training that draws on the methods, customer discovery, and curriculum of the [https://new.nsf.gov/funding/initiatives/i-corps NSF Innovation Corps] and applies them to open-source projects.
doing PR reviews and maintenance of GRASS GIS code, documentation, and website.


=== Mentoring program ===
The program included conducting 70+ 30-minute interviews with both GRASS users and non-users to better shape the future path of GRASS GIS and the POSE project. So far, the interviews focused on educators, companies, researchers, influencers and it focused more on non-users than users.
Development-oriented mentoring program [https://grass.osgeo.org/news/2023_10_11_mentoring_program_announced/ announced]
* [https://grasswiki.osgeo.org/wiki/Mentoring_Program wiki page]
* 4 participants (from 12 responses), supported by email and video calls
Resulted in improvements to GRASS GIS core and addons:
* merged PR: [https://github.com/OSGeo/grass/pull/3206 grass.script: ensure memmap content is flushed before writing to a raster]
* radar addon toolset PR: [https://github.com/OSGeo/grass-addons/pull/949 Add i.saocom and i.sar toolsets]


=== Student grants ===
Next steps, include processing the collected qualitative data, developing possible future directions for sustainability of the project, discussing these with the Project Steering Committee, the core team of developers, and the broader community.
Student grants [https://grass.osgeo.org/news/2023_11_09_student_grants_announced/ announced] with
topics at a [https://grasswiki.osgeo.org/wiki/GRASS_GIS_Student_Grants wiki page]


=== Working Groups created ===
=== Mentoring Program ===
4 [https://grasswiki.osgeo.org/wiki/Working_Groups working groups] created
The development oriented [https://grass.osgeo.org/news/2023_10_11_mentoring_program_announced/ mentoring program] welcomed 5 new participants from various institutions including universities, USGS, US Army Corps of Engineers, and local municipalities. The discussed topics covered developing workflows for topography and network analysis, environmental modeling, and geophysics. Participants were supported by email and video calls.


=== Google Scholar update ===
=== Conference Presentations ===
GRASS GIS Google Scholar [https://scholar.google.com/citations?user=gJ0ZB0cAAAAJ account] updated with more complete records
* [https://agu.confex.com/agu/fm23/meetingapp.cgi/Paper/1342418 Modeling vegetated stream buffer impacts on water depth and discharge at the watershed scale with GRASS GIS and Jupyter Notebooks] by Caitlin Haedrich at AGU, December 2023.
* a [https://forms.gle/cDEvMJu7d6nvxLKn9 form] was created to collect missing records
* [https://agu.confex.com/agu/fm23/meetingapp.cgi/Paper/1420596 OpenPlains: A Web-Based Platform to Democratize Geospatial Participatory Modeling on the Cloud] by Corey White at AGU, December 2023.
* added to GRASS website [https://grass.osgeo.org/contribute/ Contribute] and [https://grass.osgeo.org/about/citation/ Citation] page


=== GRASS GIS training ===
=== Presentations and Workshops ===
[https://spatial-ecology.net/docs/build/html/index.html Geocomputation and Machine Learning for Environmental Applications] training course [https://spatial-ecology.net/course-geocomputation-machine-learning-for-environmental-applications-intermediate-level-2024/ announced].
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-vanderbilt-2024 Intro to GRASS GIS] by Vaclav Petras and Anna Petrasova was remotely delivered to geographers at Vanderbilt University in February 2024. The  workshop was developed in Jupyter Lab and run using [https://wholetale.org WholeTale] online platform.
GRASS GIS part free of charge led by Giuseppe Amatulli.
* [https://github.com/tomorrownow/intro-to-geoprocessing-workshop Introduction to GRASS GIS Geospatial Processing] by Corey White at [https://smathhacks.ncssm.edu/ SMathHacks hackathon], March 2nd (supported also by Veronica Andreo and Vaclav Petras). SMathHacks is the annual 36-hour hackathon hosted by the NC School of Science and Math, open to all North Carolina students. Students collaborate to build innovative software projects, explore new technologies, and have fun along the way. The workshop was delivered in person with students using [https://colab.research.google.com/ Google Colab].


=== Student Grant Program ===
Linda Karlovska participates in the [https://grasswiki.osgeo.org/wiki/GRASS_GIS_Student_Grants Student Grant program] with her project [https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation Easy command history navigation through the History browser panel] mentored by Anna Petrasova (POSE team) and Martin Landa (FCE CTU). Student Grants Program is an existing effort which the POSE team participates in by mentoring.
=== Code Security ===
Vaclav Petras mentors four students who create code security improvements in their NCSU class ''CSC 472: Cybersecurity Practicum''. So far, the students created two PRs which were successfully merged:
* [https://github.com/OSGeo/grass/pull/3444 grass.script: Change insecure mktemp to NamedTemporaryFile #3444]
* [https://github.com/OSGeo/grass/pull/3451 utils: fixed shell vulnerability in mkrest.py #3451]
Two other PRs are open and more work is underway to do first steps for new approach to a more secure code.
=== Localized Basic Datasets ===
* NCSU and ASU teams worked on localized versions of GRASS basic data set following the [https://grass.osgeo.org/sampledata/north_carolina/nc_basic_spm_grass7.zip North Carolina basic data set example], preparing Flagstaff, Arizona and Nepal draft version with basic layers
== Y1 3rd quarter report ==
=== Mentoring Activities ===
The mentoring program form received 2 new responses and mentors were actively working with 3 mentees.
It resulted in fixes in [https://github.com/OSGeo/grass-addons/pull/1042 v.transects] and [https://github.com/OSGeo/grass-addons/pull/1077 r.accumulate].
Linda Kladivova finished her project developing [https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation History browser] in the GRASS GUI as part of the GRASS Student Grant Program. Mentor's time was covered by POSE.
GRASS GIS has [https://grass.osgeo.org/news/2024_05_27_gsoc_2024_students/ 3 students this year for Google Summer of Code]. Time spent managing GSoC for GRASS GIS was covered by POSE.
The topics covered by GSoC projects are:
* [https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2024_EODAG_Support Add EODAG support to GRASS GIS]
* [https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2024_Improve_user_experience_in_Jupyter_Notebooks Improve GRASS user experience in Jupyter Notebook]
* [https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2024_Add_JSON_output Add JSON output to different GRASS tools in C]
=== Presentations, Workshops, Event Planning ===
* [https://github.com/ncsu-geoforall-lab/tngic-2024 GRASS 101: From GUI Clicks to Writing Scripts (TNGIC 2024)] by Veronica Andreo and Caitlin Haedrich
* [https://github.com/ncsu-geoforall-lab/csdms-grass-2024 Coastal evolution analysis and inundation modeling with GRASS GIS (CSDMS Workshop 2024)] by Caitlin Haedrich and Pratikshya Regmi, see also [https://cnr.ncsu.edu/geospatial/news/2024/06/03/students-teach-grass-gis-for-coastal-hazard-analysis/ blog post with images]
* Organization of [[GRASS Community Meeting Prague 2024]] and budget planning by Vaclav Petras
=== CMake transition ===
Ongoing work on [https://github.com/OSGeo/grass/pull/3621 CMake compilation] was partially covered by POSE.
=== Code Quality and Security ===
Code quality improvements in Python code:
* [https://github.com/OSGeo/grass/pull/3541 PR addressing Flake8 E501] (long lines in 158 files not fixable by automated tools)
* [https://github.com/OSGeo/grass/pull/3535 PR addressing Flake8 E401] (unused imports)
Vaclav Petras mentored a team of four students who create code security improvements in their NCSU class ''CSC 472: Cybersecurity Practicum''. The team created 12 PRs which were successfully merged, 7 additional experimental PRs (not merged) and 2 PRs which are still open at this time. Specifically, the team achieved the following:
* With the involvement and help from the other contributors, the team introduced Bandit and Coverity Scan as additional code scanning tools for Python and C, respectively.
* The team analyzed issues reported CodeQL, Bandit, and Coverity Scan and reported on relevance of different issues to the project (report privately shared with the GRASS Development Team).
* Vulnerability Triage Guide (also privately shared with the GRASS Development Team).
* The team also developed a [https://github.com/OSGeo/grass/security/policy security policy] for the project.
* The vulnerability reporting and security advisories were enabled based on the team recommendations.
* The team fixed several specific security issues in the code:
** [https://github.com/OSGeo/grass/pull/3469  packaging: Use subprocess instead of os.popen for change log creation #3469] (merged)
** [https://github.com/OSGeo/grass/pull/3549  lib raster: fixed security vulnerabilities and weaknesses #3549] (merged)
** [https://github.com/OSGeo/grass/pull/3451  utils: fixed shell vulnerability in mkrest.py #3451] (merged)
** [https://github.com/OSGeo/grass/pull/3444  grass.script: Change insecure mktemp to NamedTemporaryFile #3444] (merged)
** [https://github.com/OSGeo/grass/pull/3551  lib/psdriver: Fix issues with wrong type of arguments to printf #3551] (PR open)
** [https://github.com/OSGeo/grass/pull/3452 g.region/r.to.rast3elev: fixed scanf error to recognize EOF as a possible return value #3452] (PR open)
=== Documentation ===
* Documentation and Education Working Group met and planned the development of new tutorials. Veronica Andreo met other GRASS developers and contributors to coordinate further tutorials development.
* Development of new [https://github.com/ncsu-geoforall-lab/tutorials tutorials] in progress, topics include:
** Getting started with GRASS GIS
** GRASS GIS in Google Colab
** GRASS GIS and Python
** GRASS GIS and R
** GRASS R and Python comparison
** Making plots in GRASS GIS
* New [https://github.com/OSGeo/grass/blob/main/doc/development/style_guide.md GRASS Programming Style Guide]
* [https://github.com/petrasovaa/cookiecutter-grass-addon New addon template powered by Cookiecutter]
* Analysis of options names and functionality in plotting tools:
** [https://github.com/OSGeo/grass-addons/issues/1071 Addons for plotting: Standardize parameters and flags]
=== Communication and outreach ===
* Creation of 4 news post in the [https://grass.osgeo.org/news/ GRASS website]
* Social media:
** [https://twitter.com/GRASSGIS Twitter]: 9 new posts/threads
** [https://fosstodon.org/@grassgis Fosstodon]: 9 new posts/threads
=== Other sustainability activities ===
* [https://github.com/OSGeo/grass/blob/main/CODE_OF_CONDUCT.md Code of Conduct added to the main repository]
* [https://github.com/OSGeo/grass/blob/main/.github/ISSUE_TEMPLATE/bug_report.md revised Issue template]
* New [https://github.com/OSGeo/grass/pull/3673 RFC for a Release Policy]
* Revised [https://github.com/OSGeo/grass/pull/2815 RFC for Release Procedure]
* WIP: GRASS GIS Roadmap
* [https://github.com/OSGeo/grass-website/issues/414 GRASS website: ongoing restructuring]
* [[PSC]] page moved from trac wiki to media wiki
== Y1 4th quarter report ==
=== Mentoring Activities ===
The mentoring program form received 3 new responses and mentors were actively working with 3 mentees.
Results include parallelization of r.texture, r.horizon, improved grass.benchmarking library and a new tutorial on lidar data.
GSoC successfully completed their projects:
* [https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2024_EODAG_Support Add EODAG support to GRASS GIS]
* [https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2024_Improve_user_experience_in_Jupyter_Notebooks Improve GRASS user experience in Jupyter Notebook]
* [https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2024_Add_JSON_output Add JSON output to different GRASS tools in C]
Time spent by mentoring was covered by NSF.
=== Presentations, Workshops, Event Planning ===
* [https://veroandreo.github.io/grass_foss4geu_2024/ Let's combine GRASS, Python and R: Satellite time series data for species distribution modeling]. Workshop by Veronica Andreo. FOSS4G Europe 2024, Tartu.
* [https://veroandreo.github.io/grass-gis-talks/foss4gEU2024.html#/ Status of GRASS GIS project]. Talk by Veronica Andreo. FOSS4G Europe 2024, Tartu.
* [https://veroandreo.github.io/grass-gis-talks/useR2024.html#/ Boost Spatial Data Science Workflows with GRASS GIS and R]. Talk  by Veronica Andreo. useR Conference 2024, Salzburg.
* [https://ncsu-geoforall-lab.github.io/usdoi-webinar/notebooks/grass_jupyter.html Geoprocessing with GRASS GIS and Jupyter Notebooks]. Webinar by Corey White. U.S. DOI, August 2024, NCSU.
* [[GRASS Community Meeting Prague 2024]]
* [https://spatial-ecology.net/docs/build/html/COURSESAROUNDTHEWORLD/course_GEO-OPEN-HACK-2024_06_2024.html GEO-OPEN-HACK-2024: Big Geospatial Data Hackathon with Open Infrastructure and Tools]  training course delivered ([https://iiasa.ac.at/events/jun-2024/geo-open-hack-2024-big-geospatial-data-hackathon-with-open-infrastructure-and-tools announcement]). The GRASS material has been developed as part of the NSF grant.
* Planning GRASS Dev summit 2025 at NCSU
* Planning AGU (4 abstract submitted), AGU booth for GRASS GIS reserved and payed
* Submitted workshop, talk and keynote to FOSS4G 2024 - Brazil.
=== CMake transition ===
Ongoing work on [https://github.com/OSGeo/grass/pull/3621 CMake compilation] was partially covered by POSE.
=== Code Quality and Security ===
* Code quality improvements in Python code:
** [https://github.com/OSGeo/grass/pull/3763 Flake8 W605 Invalid escape sequence #3763]
** [https://github.com/OSGeo/grass/pull/3926 Flake8 E741 Do not use variables named 'I', 'O', or 'l' in wxGUI code #3926]
** [https://github.com/OSGeo/grass/pull/3928 Flake8 E741 for the rest of code base #3928]
** [https://github.com/OSGeo/grass/pull/4200  grass.temporal: Flake8 F841 Local variable assigned to but never used #4200]
** [https://github.com/OSGeo/grass/pull/4113  grass.pygrass: Remove unused arg in ctypes.CFUNCTYPE #4113]
** [https://github.com/OSGeo/grass/pull/4206 t.rast.to.vect: Fix passing column parameter to r.to.vect, fix flake8 F841 #4206]
* Code quality and security improvements in C and C++ code are in 36 PRs with fixes for more than 25 tools, specifically in:
** raster: r.path, r.out.mpeg, r.out.png, r.in.xyz, r.terraflow, r.statistics, r.spreadpath, r.sim.water, r.sim.erosion, r.object.geometry, r.coin
** imagery: i.atcorr, i.aster.toar, i.ortho.photo, i.landsat.acca, i.segment, i.smap
** display: d.linegraph, d.legend.vect, d.histogram, d.labels
** raster 3D: r3.in.v5d, r3.info, r3.mapcalc
** other: lib/gis, lib/vector/diglib, g.findfile, g.setproj, ps.map, lib/cdhc
Changes by author: [https://github.com/OSGeo/grass/pulls?q=author%3AShubhamDesai+is%3Apr+is%3Aclosed+merged%3A2024-06-01..2024-08-31+base%3Amain+sort%3Aupdated-desc+ ShubhamDesai], [https://github.com/OSGeo/grass/pulls?q=author%3Amshukuno+is%3Apr+is%3Aclosed+merged%3A2024-06-01..2024-08-31+base%3Amain+sort%3Aupdated-desc+ Makiko Shukunobe], [https://github.com/OSGeo/grass/pulls?q=author%3Aymdatta+is%3Apr+is%3Aclosed+merged%3A2024-06-01..2024-08-31+base%3Amain+sort%3Aupdated-desc+ ymdatta]
Several reviewers, not supported by the NSF POSE project, played crucial role not only in reviewing, but also in determining the right fixes.
Fixed issues were reported by Flake8, Coverity Scan, and Cppcheck.
=== Documentation ===
* Veronica Andreo met some GRASS developers and contributors to follow up on tutorials development.
* 7 new [https://github.com/ncsu-geoforall-lab/tutorials tutorials] on time series:
** Management and visualization
** Aggregation
** Algebra
** Accumulation
** Gap filling
** Querying raster time series with vectors
** Subset, import and export
* Tutorial on how to set up Jupyter and GRASS in Windows
* New [https://github.com/OSGeo/grass-tutorials repository] under OSGeo organization to host the upcoming quarto based website for GRASS tutorials
* PR template created - [https://github.com/OSGeo/grass/community GitHub Community Standards] all checked complete
=== Communication and outreach ===
* Creation of 4 news posts in the [https://grass.osgeo.org/news/ GRASS website]
* Social media:
** [https://twitter.com/GRASSGIS Twitter]: 25 new posts
** [https://fosstodon.org/@grassgis Fosstodon]: 25 new posts
* New GRASS GIS LinkedIn page at: [https://www.linkedin.com/company/grass-gis/ https://www.linkedin.com/company/grass-gis/]
* Requested transition of [https://discourse.osgeo.org/t/osgeo-3255-migrate-grass-dev-mailing-list-to-discourse/49796 grass-dev mailing list to discourse.osgeo.org]
* Set up GRASS GIS swag shop on Redbubble
=== Governance ===
* [https://grass.osgeo.org/about/roadmap/ Roadmap] and [https://grass.osgeo.org/about/governance/ Governance] pages added to the website
* PSC elections:
** Documented criteria to define people entitled to vote
** Documented procedure to compile the list of voters
** Elections [https://www.mail-archive.com/grass-user@lists.osgeo.org/msg41102.html announcement] sent out
== Y2 1st quarter report ==
=== Presentations, Workshops, Event Planning ===
FOSS4GNA 2024 in St. Louis, Missouri:
* Vaclav Petras. State of GRASS GIS. FOSS4G NA St. Louis, September 9-11, 2024 ([https://wenzeslaus.github.io/grass-gis-talks/foss4gna2024.html slides])
* Huidae Cho. Evolution of GRASS GIS. FOSS4G NA St. Louis, September 9-11, 2024 ([https://htmlpreview.github.io/?https://github.com/HuidaeCho/grass-talks/blob/main/foss4g-na-2024.html slides])
* Huidae Cho. An OpenMP Algorithm for Delineating a Large Number of Watersheds. FOSS4G NA St. Louis, September 9-11, 2024
* Corey T. White. Developing Web-Applications with GRASS GIS. Workshop. FOSS4G NA St. Louis, September 9-11, 2024
* Corey T. White. GRASS GIS as a Geospatial Computational Engine. FOSS4G NA St. Louis, September 9-11, 2024


== Roadmap ==
== Roadmap ==
;Mentoring program (fall 2023 - summer 2025)
:Free developer-oriented mentoring program to support researchers and software developers to integrate GRASS GIS into their workflows and contribute to GRASS GIS.
; Streamline contributor onboarding (spring 2024 - fall 2024)
: Includes updating and creating guidelines for code and non-code contributions.
; Streamline user onboarding (spring 2024 - fall 2024)
: Includes modernizing tool documentation, developing tutorials.
: Creating sample datasets for localized tutorials.
: Developing online training materials for big data processing.
; Training sessions (fall 2023 - summer 2025)
: Local training sessions (at universities and conferences) introducing GRASS GIS to students and researchers.
: Training program for big data processing delivered online.
; Engaging industry partners (January - August 2024)
: Identify and engage industry partners to gather feedback and to start industry partnership program.
; Conferences
: Presence (talks, workshops, networking) at FOSS4GNA 2023, FOSS4G Asia 2023, AGU 2023, CSDMD 2024, FOSS4G Europe 2024, FOSS4G 2024, AGU 2024
; Community sprints
: Virtual or in-person participation in OSGeo community sprints, GRASS GIS community sprints
; Software distribution (January 2024 - December 2024)
: Transition to CMake build system
: Develop conda package
;Simplify maintenance of GRASS integrations with QGIS and R (2024-2025)
: Virtual meetings with QGIS and R developers and GRASS GIS developers (spring 2024).
: Identify and implement improvements to the integration.
;Improve code quality, security, and quality assurance
: Code quality (Flake8, Pylint, Cppcheck), first half of 2024.
: Security (CodeQL), second half of 2024.
: Quality assurance (better pytest integration), second half of 2024.
; In-person developer summit (spring/summer 2025)
: Hosted by NC State University, Raleigh, NC, USA.
: Identify additional challenges for adoption of GRASS GIS as geoprocessing engine.
: Long-term planning beyond the POSE project.
== Acknowledgements ==
The funding is provided by the U.S. National Science Foundation, award 2303651.
[[File:NSF Official logo.png|frameless|left]]
[[Category: Community]]
[[Category: Conferences‏‎]]
[[Category: 2023]]
[[Category: 2024]]
[[Category: 2025]]

Latest revision as of 13:51, 16 September 2024

To inform GRASS community about the work done as part of the award 2303651 from the U.S. National Science Foundation (NSF) to enhance GRASS ecosystem, the following report summarizes the progress and outcomes in quarterly reports and presents the roadmap for the project.

The two main goals of the project are: 1) to facilitate the adoption of GRASS GIS as a key geoprocessing engine by a growing number of researchers and geospatial practitioners in academia, governments, and industry; and 2) to expand and diversify the developer community, especially through supporting next-generation scientists to gain expertise to maintain and innovate GRASS software.

Principal investigators and senior personnel:

  • Helena Mitasova, North Carolina State University (Principal Investigator)
  • Vaclav Petras, North Carolina State University (Co-Principal Investigator)
  • Anna Petrasova, North Carolina State University (Co-Principal Investigator)
  • C Michael Barton, Arizona State University (Co-Principal Investigator)
  • Huidae Cho, New Mexico State University (Co-Principal Investigator)
  • Giuseppe Amatulli, Yale (Senior Personnel)

Other personnel who is joining for the execution of the grant is listed below when relevant.

Y1 1st quarter report

Project Announcements and Communication

Conference Presentations

Training and Workshops

Community Sprint Participation

Anna Petrasova and Vaclav Petras remotely participated in OSGeo 2023 code sprint doing PR reviews and maintenance of GRASS GIS code, documentation, and website.

Mentoring Program

Mentoring Program is a new effort started and so-far performed only by the POSE team.

Student Grants Program

Student grants announced with topics at a wiki page. Student Grants Program is an existing effort which the POSE team participates in.

Working Groups

Four working groups created (scope, wiki page, coordinator, and a list of people for each).

Citations

  • GRASS GIS Google Scholar account updated with more complete records.
  • A form was created to collect new and missing records.
  • Profile link added to GRASS website Contribute and Citation page.

Y1 2nd quarter report

NSF I-Corps program

Corey White, Vaclav Petras, and Anna Petrasova participated in a 4-week long intensive mandatory training that draws on the methods, customer discovery, and curriculum of the NSF Innovation Corps and applies them to open-source projects.

The program included conducting 70+ 30-minute interviews with both GRASS users and non-users to better shape the future path of GRASS GIS and the POSE project. So far, the interviews focused on educators, companies, researchers, influencers and it focused more on non-users than users.

Next steps, include processing the collected qualitative data, developing possible future directions for sustainability of the project, discussing these with the Project Steering Committee, the core team of developers, and the broader community.

Mentoring Program

The development oriented mentoring program welcomed 5 new participants from various institutions including universities, USGS, US Army Corps of Engineers, and local municipalities. The discussed topics covered developing workflows for topography and network analysis, environmental modeling, and geophysics. Participants were supported by email and video calls.

Conference Presentations

Presentations and Workshops

  • Intro to GRASS GIS by Vaclav Petras and Anna Petrasova was remotely delivered to geographers at Vanderbilt University in February 2024. The workshop was developed in Jupyter Lab and run using WholeTale online platform.
  • Introduction to GRASS GIS Geospatial Processing by Corey White at SMathHacks hackathon, March 2nd (supported also by Veronica Andreo and Vaclav Petras). SMathHacks is the annual 36-hour hackathon hosted by the NC School of Science and Math, open to all North Carolina students. Students collaborate to build innovative software projects, explore new technologies, and have fun along the way. The workshop was delivered in person with students using Google Colab.

Student Grant Program

Linda Karlovska participates in the Student Grant program with her project Easy command history navigation through the History browser panel mentored by Anna Petrasova (POSE team) and Martin Landa (FCE CTU). Student Grants Program is an existing effort which the POSE team participates in by mentoring.

Code Security

Vaclav Petras mentors four students who create code security improvements in their NCSU class CSC 472: Cybersecurity Practicum. So far, the students created two PRs which were successfully merged:

Two other PRs are open and more work is underway to do first steps for new approach to a more secure code.

Localized Basic Datasets

  • NCSU and ASU teams worked on localized versions of GRASS basic data set following the North Carolina basic data set example, preparing Flagstaff, Arizona and Nepal draft version with basic layers


Y1 3rd quarter report

Mentoring Activities

The mentoring program form received 2 new responses and mentors were actively working with 3 mentees. It resulted in fixes in v.transects and r.accumulate.

Linda Kladivova finished her project developing History browser in the GRASS GUI as part of the GRASS Student Grant Program. Mentor's time was covered by POSE.

GRASS GIS has 3 students this year for Google Summer of Code. Time spent managing GSoC for GRASS GIS was covered by POSE.

The topics covered by GSoC projects are:

Presentations, Workshops, Event Planning

CMake transition

Ongoing work on CMake compilation was partially covered by POSE.

Code Quality and Security

Code quality improvements in Python code:

Vaclav Petras mentored a team of four students who create code security improvements in their NCSU class CSC 472: Cybersecurity Practicum. The team created 12 PRs which were successfully merged, 7 additional experimental PRs (not merged) and 2 PRs which are still open at this time. Specifically, the team achieved the following:

Documentation

Communication and outreach

Other sustainability activities

Y1 4th quarter report

Mentoring Activities

The mentoring program form received 3 new responses and mentors were actively working with 3 mentees. Results include parallelization of r.texture, r.horizon, improved grass.benchmarking library and a new tutorial on lidar data.

GSoC successfully completed their projects:

Time spent by mentoring was covered by NSF.

Presentations, Workshops, Event Planning

  • Planning GRASS Dev summit 2025 at NCSU
  • Planning AGU (4 abstract submitted), AGU booth for GRASS GIS reserved and payed
  • Submitted workshop, talk and keynote to FOSS4G 2024 - Brazil.

CMake transition

Ongoing work on CMake compilation was partially covered by POSE.

Code Quality and Security

  • Code quality and security improvements in C and C++ code are in 36 PRs with fixes for more than 25 tools, specifically in:
    • raster: r.path, r.out.mpeg, r.out.png, r.in.xyz, r.terraflow, r.statistics, r.spreadpath, r.sim.water, r.sim.erosion, r.object.geometry, r.coin
    • imagery: i.atcorr, i.aster.toar, i.ortho.photo, i.landsat.acca, i.segment, i.smap
    • display: d.linegraph, d.legend.vect, d.histogram, d.labels
    • raster 3D: r3.in.v5d, r3.info, r3.mapcalc
    • other: lib/gis, lib/vector/diglib, g.findfile, g.setproj, ps.map, lib/cdhc

Changes by author: ShubhamDesai, Makiko Shukunobe, ymdatta

Several reviewers, not supported by the NSF POSE project, played crucial role not only in reviewing, but also in determining the right fixes.

Fixed issues were reported by Flake8, Coverity Scan, and Cppcheck.

Documentation

  • Veronica Andreo met some GRASS developers and contributors to follow up on tutorials development.
  • 7 new tutorials on time series:
    • Management and visualization
    • Aggregation
    • Algebra
    • Accumulation
    • Gap filling
    • Querying raster time series with vectors
    • Subset, import and export
  • Tutorial on how to set up Jupyter and GRASS in Windows
  • New repository under OSGeo organization to host the upcoming quarto based website for GRASS tutorials
  • PR template created - GitHub Community Standards all checked complete

Communication and outreach

Governance

  • Roadmap and Governance pages added to the website
  • PSC elections:
    • Documented criteria to define people entitled to vote
    • Documented procedure to compile the list of voters
    • Elections announcement sent out

Y2 1st quarter report

Presentations, Workshops, Event Planning

FOSS4GNA 2024 in St. Louis, Missouri:

  • Vaclav Petras. State of GRASS GIS. FOSS4G NA St. Louis, September 9-11, 2024 (slides)
  • Huidae Cho. Evolution of GRASS GIS. FOSS4G NA St. Louis, September 9-11, 2024 (slides)
  • Huidae Cho. An OpenMP Algorithm for Delineating a Large Number of Watersheds. FOSS4G NA St. Louis, September 9-11, 2024
  • Corey T. White. Developing Web-Applications with GRASS GIS. Workshop. FOSS4G NA St. Louis, September 9-11, 2024
  • Corey T. White. GRASS GIS as a Geospatial Computational Engine. FOSS4G NA St. Louis, September 9-11, 2024

Roadmap

Mentoring program (fall 2023 - summer 2025)
Free developer-oriented mentoring program to support researchers and software developers to integrate GRASS GIS into their workflows and contribute to GRASS GIS.
Streamline contributor onboarding (spring 2024 - fall 2024)
Includes updating and creating guidelines for code and non-code contributions.
Streamline user onboarding (spring 2024 - fall 2024)
Includes modernizing tool documentation, developing tutorials.
Creating sample datasets for localized tutorials.
Developing online training materials for big data processing.
Training sessions (fall 2023 - summer 2025)
Local training sessions (at universities and conferences) introducing GRASS GIS to students and researchers.
Training program for big data processing delivered online.
Engaging industry partners (January - August 2024)
Identify and engage industry partners to gather feedback and to start industry partnership program.
Conferences
Presence (talks, workshops, networking) at FOSS4GNA 2023, FOSS4G Asia 2023, AGU 2023, CSDMD 2024, FOSS4G Europe 2024, FOSS4G 2024, AGU 2024
Community sprints
Virtual or in-person participation in OSGeo community sprints, GRASS GIS community sprints
Software distribution (January 2024 - December 2024)
Transition to CMake build system
Develop conda package
Simplify maintenance of GRASS integrations with QGIS and R (2024-2025)
Virtual meetings with QGIS and R developers and GRASS GIS developers (spring 2024).
Identify and implement improvements to the integration.
Improve code quality, security, and quality assurance
Code quality (Flake8, Pylint, Cppcheck), first half of 2024.
Security (CodeQL), second half of 2024.
Quality assurance (better pytest integration), second half of 2024.
In-person developer summit (spring/summer 2025)
Hosted by NC State University, Raleigh, NC, USA.
Identify additional challenges for adoption of GRASS GIS as geoprocessing engine.
Long-term planning beyond the POSE project.

Acknowledgements

The funding is provided by the U.S. National Science Foundation, award 2303651.