https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&user=Neteler&feedformat=atomGRASS-Wiki - User contributions [en]2024-03-29T15:35:29ZUser contributionsMediaWiki 1.41.0https://grasswiki.osgeo.org/w/index.php?title=GRASS_Community_Meeting_Prague_2024&diff=27479GRASS Community Meeting Prague 20242024-03-27T15:54:27Z<p>Neteler: /* Agenda */ Discuss mailing list (mailman) vs discourse (forum)</p>
<hr />
<div>{{toc|right}}<br />
The ''GRASS GIS Community Meeting'' for contributors and developers will be happening from '''June 14 to June 19, 2024''' in Prague, Czechia.<br />
<br />
[[File:Prague-Community-Meeting-2023-crop.jpg|500px|frameless|center]]<br />
<br />
== Sponsor us! ==<br />
<br />
We welcome financial contributions to support the meeting and we are looking for sponsors to cover costs such as meals or to help reducing travel and accommodation expenses for GRASS developers who volunteer their time. If you are interested in sponsoring the GRASS Community Meeting, please go to:<br />
<br />
::: '''[https://opencollective.com/osgeo/projects/grass/contribute OpenCollective]'''<br />
<br />
Any surplus at the end of the event will be used for future activities of the GRASS GIS project such as the [[Student Grants|Student Grant program]].<br />
<br />
This GRASS Community Meeting is a great occasion for you to support the development of GRASS. With your contribution you'll enable more developers to meet. Community meetings are important opportunities for developers to discuss, fix bugs, plan the direction for the project and work on new features. The developers and other contributors or their employers are donating their valuable time, so it would be great if funding can be made available from within the community to cover out-of-pocket expenses. All of the work that takes place at the community meeting will be directly contributed back into the GRASS project to the benefit of everyone who uses it. Note that while we have our general plan, we can't accept any earmarked donations, i.e., we can't make any promises for a specific work to be done, please contact specific developers or support commercial providers for that.<br />
<br />
We are grateful to the following sponsors for their support and commitment! <br />
<br />
* U.S. National Science Foundation, award 2303651. (Travel for 5 participants and their time, event venue.)<br />
<br />
[[File:NSF Official logo.png|none|left|200px|alt=Logo of US NSF|U.S. National Science Foundation]]<br />
<br />
* In-kind contributions will be acknowledged here.<br />
* Personal time and/or financial contributions will be acknowledged here.<br />
<br />
== Purpose ==<br />
<br />
The ''GRASS GIS Community Meeting'' is a great occasion for folks to support the development by actively contributing to the project in different ways. These include source code updates, documentation (manuals, wiki, tutorials), translations, website improvements or likewise. The community meeting is also a get-together where supporters, contributors, power users and developers make decisions and tackle larger problems related to the project, discuss and collaboratively resolve bugs, plan the direction for the project and work on new features. We welcome people committed to improving the GRASS GIS project and the interfaces to QGIS, GDAL, PostGIS, R, OGC Services and others.<br />
<br />
In this meeting, building on momentum from the 40th birthday meeting, we will continue the revisions of the maintenance processes and infrastructure - a process which highly benefits from the current maintainers being in one place (and time zone). Topics which require highly synchronous collaboration will be included such as Markdown documentation and CMake build transitions. Other contributors are expected to enhance existing tools and their documentation. A [https://grass.osgeo.org/news/2023_08_13_grass_community_meeting_prague_june_2023_report/ press release] gives an overview of last year's event.<br />
<br />
We do require participants to work on GRASS GIS or connections to other projects. However, we leave them the freedom to work on what they think is the best contribution to the project given their skills and time available.<br />
<br />
For the detailed agenda and individual's plans, see below.<br />
<br />
== Agenda ==<br />
These are some of the identified project priorities:<br />
* Develop the project roadmap to better communicate project vision and priorities.<br />
* Discuss the GRASS GIS integration with QGIS with its maintainers to identify next steps.<br />
* Test the CMake and conda packaging implementations.<br />
* Finalize the HTML to Markdown documentation conversion.<br />
* GSoC students will showcase their projects and seek feedback. We also search for fostering their engagement with community members participating in the meeting and others that want to join online.<br />
* Test and review onboarding documentation for developers, maintainers and other contributors.<br />
* Develop use cases and tutorials on the use and integration of STAC related modules into data processing workflows.<br />
* Get feedback on ongoing GRASS website UX improvements and add missing content. <br />
* Address issues discussed last year about GRASS-R integration: https://github.com/rsbivand/rgrass/discussions/78<br />
* Discuss mailing list (mailman) vs [https://discourse.osgeo.org/ discourse] (forum)<br />
<br />
=== Thursday, June 13 ===<br />
<br />
Day of arrival. Contact organizers if you are interested in individualized program or helping with organization.<br />
<br />
=== Friday, June 14 ===<br />
<br />
* Welcome.<br />
* Refine shared goals.<br />
<br />
=== Saturday, June 15 ===<br />
<br />
=== Sunday, June 16 ===<br />
<br />
=== Monday, June 17 ===<br />
<br />
=== Tuesday, June 18 ===<br />
<br />
=== Wednesday, June 19 ===<br />
<br />
=== Thursday, June 20 ===<br />
<br />
Day of departure.<br />
<br />
== Participation ==<br />
<br />
We are planning for an attendance of 15 people at the same time but you are welcome to sign up regardless of capacity: We will find a space for you. Please add your name here or contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>:<br />
<br />
=== In person ===<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!width=100px|'''Arrival'''<br />
!width=100px|'''Departure'''<br />
!'''Topics'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| [[User:wenzeslaus|Vaclav Petras]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| review PR, reduce PR queue, Python API topics (also for QGIS and R), funding<br />
|<br />
|-<br />
|2<br />
| [[User:Annakrat|Anna Petrasova]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| grass.jupyter, R and QGIS integration<br />
|<br />
|-<br />
|3<br />
| [[User:Ctwhite|Corey White]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| STAC, JSON outputs, connections with other tools (OpenPlains) <br />
|-<br />
|4<br />
| [[User:Chaedri|Caitlin Haedrich]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| grass.jupyter<br />
|<br />
|-<br />
|5<br />
| [[User:Veroandreo | Vero Andreo]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| STAC, tutorials, website, documentation, contributing guidelines<br />
|<br />
|-<br />
|6<br />
| [[User:florisvdh | Floris Vanderhaeghe]]<br />
| Belgium<br />
| June 13<br />
| June 18 (morning)<br />
| Interfacing GRASS from R (parts of the [https://github.com/rsbivand/rgrass/discussions/78 todo-list])<br />
|<br />
|-<br />
|7<br />
| [[User:martinl | Martin Landa]]<br />
| Czech Republic<br />
| June 14<br />
| June 19<br />
| GUI, Modeler, Markdown, ...<br />
|<br />
|-<br />
|8<br />
| [[User:hellik | Helmut Kudrnovsky]]<br />
| Austria <br />
| June 14<br />
| June 16<br />
| ...<br />
|<br />
|-<br />
|9<br />
| [[User:neteler | Markus Neteler]]<br />
| Germany<br />
| June 14<br />
| June 20<br />
| Infrastructure, Markdown, mailman vs discourse...<br />
|<br />
|-<br />
|}<br />
<br />
If you are arriving or departing on the days of the event, please specify the time, too.<br />
<br />
=== Online ===<br />
<br />
Join our [https://app.gitter.im/#/room/#grassgis_community:gitter.im Gitter chatroom]<br />
<br />
Gitter has a video (and backup will be Zoom).<br />
<br />
Participating virtually:<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!'''Topics'''<br />
!'''Times, synchronous or fully asynchronous'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| Be The First<br />
| Your Country<br />
| Your Topic<br />
| When you will be available (timezone, days, times)<br />
|<br />
|-<br />
|}<br />
<br />
== Venue ==<br />
<br />
[[File:Ncsu logo.jpg|240px|frameless|left]]<br />
[https://prague.ncsu.edu/about/ NC State European Center in Prague]<br><br />
Malé náměstí 144/1<br><br />
Praha 1 – 110 00<br><br />
Prague, Czech Republic<br><br />
<br />
[https://en.mapy.cz/s/fohulovaha Map]<br><br />
<br />
Prague, the capital of Czechia (Czech Republic) has an international [http://www.prg.aero/en/ airport]. It's location in the middle of central Europe makes it easily reachable by train, bus or car. The city itself has great public transportation.<br />
<br />
== Accommodation and Costs ==<br />
<br />
''Participation is free of charge''. However, participants should plan for the following costs:<br />
<br />
* Travel<br />
* Lodging<br />
* Food and drink (some may be covered)<br />
<br />
<br />
'''Please note''': The currency in Czech Republic is {{wikipedia|Czech crown}} (CZK, koruna, Kč). 100 Czech crowns are about 4 Euros (see [https://www.cnb.cz/cs/financni-trhy/devizovy-trh/kurzy-devizoveho-trhu/kurzy-devizoveho-trhu/ current rates]).<br />
<br />
== Individual Preparation ==<br />
<br />
* Bring your own computer<br />
* Bring {{wikipedia|AC adapter|power connector adapter}} if needed (Czech Republic: 230V, 50Hz, {{wikipedia|File:Euro-Flachstecker_2.jpg|Type C Europlugs}} are common and also {{wikipedia|File:French_plug_and_socket.jpg|Type E}})<br />
* Install git and the compiler tools, and come with a working GRASS development environment if possible. See [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md here] for details.<br />
<br />
== FAQ ==<br />
<br />
* ''How was it last time?''<br />
** Splendid! See [[GRASS Community Meeting Prague 2023]]!<br />
* ''Is the meeting just a coding event?''<br />
** It is mainly a coding and documentation event. It is a working session for people who are already participants in the GRASS project and/or are committed to improving the GRASS project. Committed newcomers are welcome! <br />
* ''Is the GRASS Community Meeting for developers only?''<br />
** No, anybody can help, with testing, checking out bugs and fixes, documentation and more.<br />
* ''Where can I get help and more information about the community meeting?''<br />
** Contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>.</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_Community_Meeting_Prague_2024&diff=27477GRASS Community Meeting Prague 20242024-03-27T13:08:55Z<p>Neteler: /* In person */ mailman vs discourse</p>
<hr />
<div>{{toc|right}}<br />
The ''GRASS GIS Community Meeting'' for contributors and developers will be happening from '''June 14 to June 19, 2024''' in Prague, Czechia.<br />
<br />
[[File:Prague-Community-Meeting-2023-crop.jpg|500px|frameless|center]]<br />
<br />
== Sponsor us! ==<br />
<br />
We welcome financial contributions to support the meeting and we are looking for sponsors to cover costs such as meals or to help reducing travel and accommodation expenses for GRASS developers who volunteer their time. If you are interested in sponsoring the GRASS Community Meeting, please go to:<br />
<br />
::: '''[https://opencollective.com/osgeo/projects/grass/contribute OpenCollective]'''<br />
<br />
Any surplus at the end of the event will be used for future activities of the GRASS GIS project such as the [[Student Grants|Student Grant program]].<br />
<br />
This GRASS Community Meeting is a great occasion for you to support the development of GRASS. With your contribution you'll enable more developers to meet. Community meetings are important opportunities for developers to discuss, fix bugs, plan the direction for the project and work on new features. The developers and other contributors or their employers are donating their valuable time, so it would be great if funding can be made available from within the community to cover out-of-pocket expenses. All of the work that takes place at the community meeting will be directly contributed back into the GRASS project to the benefit of everyone who uses it. Note that while we have our general plan, we can't accept any earmarked donations, i.e., we can't make any promises for a specific work to be done, please contact specific developers or support commercial providers for that.<br />
<br />
We are grateful to the following sponsors for their support and commitment! <br />
<br />
* U.S. National Science Foundation, award 2303651. (Travel for 5 participants and their time, event venue.)<br />
<br />
[[File:NSF Official logo.png|none|left|200px|alt=Logo of US NSF|U.S. National Science Foundation]]<br />
<br />
* In-kind contributions will be acknowledged here.<br />
* Personal time and/or financial contributions will be acknowledged here.<br />
<br />
== Purpose ==<br />
<br />
The ''GRASS GIS Community Meeting'' is a great occasion for folks to support the development by actively contributing to the project in different ways. These include source code updates, documentation (manuals, wiki, tutorials), translations, website improvements or likewise. The community meeting is also a get-together where supporters, contributors, power users and developers make decisions and tackle larger problems related to the project, discuss and collaboratively resolve bugs, plan the direction for the project and work on new features. We welcome people committed to improving the GRASS GIS project and the interfaces to QGIS, GDAL, PostGIS, R, OGC Services and others.<br />
<br />
In this meeting, building on momentum from the 40th birthday meeting, we will continue the revisions of the maintenance processes and infrastructure - a process which highly benefits from the current maintainers being in one place (and time zone). Topics which require highly synchronous collaboration will be included such as Markdown documentation and CMake build transitions. Other contributors are expected to enhance existing tools and their documentation. A [https://grass.osgeo.org/news/2023_08_13_grass_community_meeting_prague_june_2023_report/ press release] gives an overview of last year's event.<br />
<br />
We do require participants to work on GRASS GIS or connections to other projects. However, we leave them the freedom to work on what they think is the best contribution to the project given their skills and time available.<br />
<br />
For the detailed agenda and individual's plans, see below.<br />
<br />
== Program ==<br />
<br />
=== Thursday, June 13 ===<br />
<br />
Day of arrival. Contact organizers if you are interested in individualized program or helping with organization.<br />
<br />
=== Friday, June 14 ===<br />
<br />
* Welcome.<br />
* Refine shared goals.<br />
<br />
=== Saturday, June 15 ===<br />
<br />
=== Sunday, June 16 ===<br />
<br />
=== Monday, June 17 ===<br />
<br />
=== Tuesday, June 18 ===<br />
<br />
=== Wednesday, June 19 ===<br />
<br />
=== Thursday, June 20 ===<br />
<br />
Day of departure.<br />
<br />
== Participation ==<br />
<br />
We are planning for an attendance of 15 people at the same time but you are welcome to sign up regardless of capacity: We will find a space for you. Please add your name here or contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>:<br />
<br />
=== In person ===<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!width=100px|'''Arrival'''<br />
!width=100px|'''Departure'''<br />
!'''Topics'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| [[User:wenzeslaus|Vaclav Petras]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| review PR, reduce PR queue, Python API topics (also for QGIS and R), funding<br />
|<br />
|-<br />
|2<br />
| [[User:Annakrat|Anna Petrasova]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| grass.jupyter, R and QGIS integration<br />
|<br />
|-<br />
|3<br />
| [[User:Ctwhite|Corey White]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| STAC, JSON outputs, connections with other tools (OpenPlains) <br />
|-<br />
|4<br />
| [[User:Chaedri|Caitlin Haedrich]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| grass.jupyter<br />
|<br />
|-<br />
|5<br />
| [[User:Veroandreo | Vero Andreo]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| STAC, tutorials, website, documentation, contributing guidelines<br />
|<br />
|-<br />
|6<br />
| [[User:florisvdh | Floris Vanderhaeghe]]<br />
| Belgium<br />
| June 13<br />
| June 18 (morning)<br />
| Interfacing GRASS from R (parts of the [https://github.com/rsbivand/rgrass/discussions/78 todo-list])<br />
|<br />
|-<br />
|7<br />
| [[User:martinl | Martin Landa]]<br />
| Czech Republic<br />
| June 14<br />
| June 19<br />
| GUI, Modeler, Markdown, ...<br />
|<br />
|-<br />
|8<br />
| [[User:hellik | Helmut Kudrnovsky]]<br />
| Austria <br />
| June 14<br />
| June 16<br />
| ...<br />
|<br />
|-<br />
|9<br />
| [[User:neteler | Markus Neteler]]<br />
| Germany<br />
| June 14<br />
| June 20<br />
| Infrastructure, Markdown, mailman vs discourse...<br />
|<br />
|-<br />
|}<br />
<br />
If you are arriving or departing on the days of the event, please specify the time, too.<br />
<br />
=== Online ===<br />
<br />
Join our [https://app.gitter.im/#/room/#grassgis_community:gitter.im Gitter chatroom]<br />
<br />
Gitter has a video (and backup will be Zoom).<br />
<br />
Participating virtually:<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!'''Topics'''<br />
!'''Times, synchronous or fully asynchronous'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| Be The First<br />
| Your Country<br />
| Your Topic<br />
| When you will be available (timezone, days, times)<br />
|<br />
|-<br />
|}<br />
<br />
== Venue ==<br />
<br />
[[File:Ncsu logo.jpg|240px|frameless|left]]<br />
[https://prague.ncsu.edu/about/ NC State European Center in Prague]<br><br />
Malé náměstí 144/1<br><br />
Praha 1 – 110 00<br><br />
Prague, Czech Republic<br><br />
<br />
[https://en.mapy.cz/s/fohulovaha Map]<br><br />
<br />
Prague, the capital of Czechia (Czech Republic) has an international [http://www.prg.aero/en/ airport]. It's location in the middle of central Europe makes it easily reachable by train, bus or car. The city itself has great public transportation.<br />
<br />
== Accommodation and Costs ==<br />
<br />
''Participation is free of charge''. However, participants should plan for the following costs:<br />
<br />
* Travel<br />
* Lodging<br />
* Food and drink (some may be covered)<br />
<br />
<br />
'''Please note''': The currency in Czech Republic is {{wikipedia|Czech crown}} (CZK, koruna, Kč). 100 Czech crowns are about 4 Euros (see [https://www.cnb.cz/cs/financni-trhy/devizovy-trh/kurzy-devizoveho-trhu/kurzy-devizoveho-trhu/ current rates]).<br />
<br />
== Individual Preparation ==<br />
<br />
* Bring your own computer<br />
* Bring {{wikipedia|AC adapter|power connector adapter}} if needed (Czech Republic: 230V, 50Hz, {{wikipedia|File:Euro-Flachstecker_2.jpg|Type C Europlugs}} are common and also {{wikipedia|File:French_plug_and_socket.jpg|Type E}})<br />
* Install git and the compiler tools, and come with a working GRASS development environment if possible. See [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md here] for details.<br />
<br />
== FAQ ==<br />
<br />
* ''How was it last time?''<br />
** Splendid! See [[GRASS Community Meeting Prague 2023]]!<br />
* ''Is the meeting just a coding event?''<br />
** It is mainly a coding and documentation event. It is a working session for people who are already participants in the GRASS project and/or are committed to improving the GRASS project. Committed newcomers are welcome! <br />
* ''Is the GRASS Community Meeting for developers only?''<br />
** No, anybody can help, with testing, checking out bugs and fixes, documentation and more.<br />
* ''Where can I get help and more information about the community meeting?''<br />
** Contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>.</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_Community_Meeting_Prague_2024&diff=27476GRASS Community Meeting Prague 20242024-03-26T22:56:32Z<p>Neteler: /* In person */ +Markus Neteler</p>
<hr />
<div>{{toc|right}}<br />
The ''GRASS GIS Community Meeting'' for contributors and developers will be happening from '''June 14 to June 19, 2024''' in Prague, Czechia.<br />
<br />
[[File:Prague-Community-Meeting-2023-crop.jpg|500px|frameless|center]]<br />
<br />
== Sponsor us! ==<br />
<br />
We welcome financial contributions to support the meeting and we are looking for sponsors to cover costs such as meals or to help reducing travel and accommodation expenses for GRASS developers who volunteer their time. If you are interested in sponsoring the GRASS Community Meeting, please go to:<br />
<br />
::: '''[https://opencollective.com/osgeo/projects/grass/contribute OpenCollective]'''<br />
<br />
Any surplus at the end of the event will be used for future activities of the GRASS GIS project such as the [[Student Grants|Student Grant program]].<br />
<br />
This GRASS Community Meeting is a great occasion for you to support the development of GRASS. With your contribution you'll enable more developers to meet. Community meetings are important opportunities for developers to discuss, fix bugs, plan the direction for the project and work on new features. The developers and other contributors or their employers are donating their valuable time, so it would be great if funding can be made available from within the community to cover out-of-pocket expenses. All of the work that takes place at the community meeting will be directly contributed back into the GRASS project to the benefit of everyone who uses it. Note that while we have our general plan, we can't accept any earmarked donations, i.e., we can't make any promises for a specific work to be done, please contact specific developers or support commercial providers for that.<br />
<br />
We are grateful to the following sponsors for their support and commitment! <br />
<br />
* U.S. National Science Foundation, award 2303651. (Travel for 5 participants and their time, event venue.)<br />
<br />
[[File:NSF Official logo.png|none|left|200px|alt=Logo of US NSF|U.S. National Science Foundation]]<br />
<br />
* In-kind contributions will be acknowledged here.<br />
* Personal time and/or financial contributions will be acknowledged here.<br />
<br />
== Purpose ==<br />
<br />
The ''GRASS GIS Community Meeting'' is a great occasion for folks to support the development by actively contributing to the project in different ways. These include source code updates, documentation (manuals, wiki, tutorials), translations, website improvements or likewise. The community meeting is also a get-together where supporters, contributors, power users and developers make decisions and tackle larger problems related to the project, discuss and collaboratively resolve bugs, plan the direction for the project and work on new features. We welcome people committed to improving the GRASS GIS project and the interfaces to QGIS, GDAL, PostGIS, R, OGC Services and others.<br />
<br />
In this meeting, building on momentum from the 40th birthday meeting, we will continue the revisions of the maintenance processes and infrastructure - a process which highly benefits from the current maintainers being in one place (and time zone). Topics which require highly synchronous collaboration will be included such as Markdown documentation and CMake build transitions. Other contributors are expected to enhance existing tools and their documentation. A [https://grass.osgeo.org/news/2023_08_13_grass_community_meeting_prague_june_2023_report/ press release] gives an overview of last year's event.<br />
<br />
We do require participants to work on GRASS GIS or connections to other projects. However, we leave them the freedom to work on what they think is the best contribution to the project given their skills and time available.<br />
<br />
For the detailed agenda and individual's plans, see below.<br />
<br />
== Program ==<br />
<br />
=== Thursday, June 13 ===<br />
<br />
Day of arrival. Contact organizers if you are interested in individualized program or helping with organization.<br />
<br />
=== Friday, June 14 ===<br />
<br />
* Welcome.<br />
* Refine shared goals.<br />
<br />
=== Saturday, June 15 ===<br />
<br />
=== Sunday, June 16 ===<br />
<br />
=== Monday, June 17 ===<br />
<br />
=== Tuesday, June 18 ===<br />
<br />
=== Wednesday, June 19 ===<br />
<br />
=== Thursday, June 20 ===<br />
<br />
Day of departure.<br />
<br />
== Participation ==<br />
<br />
We are planning for an attendance of 15 people at the same time but you are welcome to sign up regardless of capacity: We will find a space for you. Please add your name here or contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>:<br />
<br />
=== In person ===<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!width=100px|'''Arrival'''<br />
!width=100px|'''Departure'''<br />
!'''Topics'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| [[User:wenzeslaus|Vaclav Petras]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| review PR, reduce PR queue, Python API topics (also for QGIS and R), funding<br />
|<br />
|-<br />
|2<br />
| [[User:Annakrat|Anna Petrasova]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| grass.jupyter, R and QGIS integration<br />
|<br />
|-<br />
|3<br />
| [[User:Ctwhite|Corey White]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| STAC, JSON outputs, connections with other tools (OpenPlains) <br />
|-<br />
|4<br />
| [[User:Chaedri|Caitlin Haedrich]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| grass.jupyter<br />
|<br />
|-<br />
|5<br />
| [[User:Veroandreo | Vero Andreo]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| STAC, tutorials, website, documentation, contributing guidelines<br />
|<br />
|-<br />
|6<br />
| [[User:florisvdh | Floris Vanderhaeghe]]<br />
| Belgium<br />
| June 13<br />
| June 18 (morning)<br />
| Interfacing GRASS from R (parts of the [https://github.com/rsbivand/rgrass/discussions/78 todo-list])<br />
|<br />
|-<br />
|7<br />
| [[User:martinl | Martin Landa]]<br />
| Czech Republic<br />
| June 14<br />
| June 19<br />
| GUI, Modeler, Markdown, ...<br />
|<br />
|-<br />
|8<br />
| [[User:hellik | Helmut Kudrnovsky]]<br />
| Austria <br />
| June 14<br />
| June 16<br />
| ...<br />
|<br />
|-<br />
|9<br />
| [[User:neteler | Markus Neteler]]<br />
| Germany<br />
| June 14<br />
| June 20<br />
| Infrastructure, Markdown, ...<br />
|<br />
|-<br />
|}<br />
<br />
If you are arriving or departing on the days of the event, please specify the time, too.<br />
<br />
=== Online ===<br />
<br />
Join our [https://app.gitter.im/#/room/#grassgis_community:gitter.im Gitter chatroom]<br />
<br />
Gitter has a video (and backup will be Zoom).<br />
<br />
Participating virtually:<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!'''Topics'''<br />
!'''Times, synchronous or fully asynchronous'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| Be The First<br />
| Your Country<br />
| Your Topic<br />
| When you will be available (timezone, days, times)<br />
|<br />
|-<br />
|}<br />
<br />
== Venue ==<br />
<br />
[[File:Ncsu logo.jpg|240px|frameless|left]]<br />
[https://prague.ncsu.edu/about/ NC State European Center in Prague]<br><br />
Malé náměstí 144/1<br><br />
Praha 1 – 110 00<br><br />
Prague, Czech Republic<br><br />
<br />
[https://en.mapy.cz/s/fohulovaha Map]<br><br />
<br />
Prague, the capital of Czechia (Czech Republic) has an international [http://www.prg.aero/en/ airport]. It's location in the middle of central Europe makes it easily reachable by train, bus or car. The city itself has great public transportation.<br />
<br />
== Accommodation and Costs ==<br />
<br />
''Participation is free of charge''. However, participants should plan for the following costs:<br />
<br />
* Travel<br />
* Lodging<br />
* Food and drink (some may be covered)<br />
<br />
<br />
'''Please note''': The currency in Czech Republic is {{wikipedia|Czech crown}} (CZK, koruna, Kč). 100 Czech crowns are about 4 Euros (see [https://www.cnb.cz/cs/financni-trhy/devizovy-trh/kurzy-devizoveho-trhu/kurzy-devizoveho-trhu/ current rates]).<br />
<br />
== Individual Preparation ==<br />
<br />
* Bring your own computer<br />
* Bring {{wikipedia|AC adapter|power connector adapter}} if needed (Czech Republic: 230V, 50Hz, {{wikipedia|File:Euro-Flachstecker_2.jpg|Type C Europlugs}} are common and also {{wikipedia|File:French_plug_and_socket.jpg|Type E}})<br />
* Install git and the compiler tools, and come with a working GRASS development environment if possible. See [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md here] for details.<br />
<br />
== FAQ ==<br />
<br />
* ''How was it last time?''<br />
** Splendid! See [[GRASS Community Meeting Prague 2023]]!<br />
* ''Is the meeting just a coding event?''<br />
** It is mainly a coding and documentation event. It is a working session for people who are already participants in the GRASS project and/or are committed to improving the GRASS project. Committed newcomers are welcome! <br />
* ''Is the GRASS Community Meeting for developers only?''<br />
** No, anybody can help, with testing, checking out bugs and fixes, documentation and more.<br />
* ''Where can I get help and more information about the community meeting?''<br />
** Contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>.</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_Community_Meeting_Prague_2024&diff=27475GRASS Community Meeting Prague 20242024-03-26T08:40:01Z<p>Neteler: Fix broken table</p>
<hr />
<div>{{toc|right}}<br />
The ''GRASS GIS Community Meeting'' for contributors and developers will be happening from '''June 14 to June 19, 2024''' in Prague, Czechia.<br />
<br />
[[File:Prague-Community-Meeting-2023-crop.jpg|500px|frameless|center]]<br />
<br />
== Sponsor us! ==<br />
<br />
We welcome financial contributions to support the meeting and we are looking for sponsors to cover costs such as meals or to help reducing travel and accommodation expenses for GRASS developers who volunteer their time. If you are interested in sponsoring the GRASS Community Meeting, please go to:<br />
<br />
::: '''[https://opencollective.com/osgeo/projects/grass/contribute OpenCollective]'''<br />
<br />
Any surplus at the end of the event will be used for future activities of the GRASS GIS project such as the [[Student Grants|Student Grant program]].<br />
<br />
This GRASS Community Meeting is a great occasion for you to support the development of GRASS. With your contribution you'll enable more developers to meet. Community meetings are important opportunities for developers to discuss, fix bugs, plan the direction for the project and work on new features. The developers and other contributors or their employers are donating their valuable time, so it would be great if funding can be made available from within the community to cover out-of-pocket expenses. All of the work that takes place at the community meeting will be directly contributed back into the GRASS project to the benefit of everyone who uses it. Note that while we have our general plan, we can't accept any earmarked donations, i.e., we can't make any promises for a specific work to be done, please contact specific developers or support commercial providers for that.<br />
<br />
We are grateful to the following sponsors for their support and commitment! <br />
<br />
* U.S. National Science Foundation, award 2303651. (Travel for 5 participants and their time, event venue.)<br />
<br />
[[File:NSF Official logo.png|none|left|200px|alt=Logo of US NSF|U.S. National Science Foundation]]<br />
<br />
* In-kind contributions will be acknowledged here.<br />
* Personal time and/or financial contributions will be acknowledged here.<br />
<br />
== Purpose ==<br />
<br />
The ''GRASS GIS Community Meeting'' is a great occasion for folks to support the development by actively contributing to the project in different ways. These include source code updates, documentation (manuals, wiki, tutorials), translations, website improvements or likewise. The community meeting is also a get-together where supporters, contributors, power users and developers make decisions and tackle larger problems related to the project, discuss and collaboratively resolve bugs, plan the direction for the project and work on new features. We welcome people committed to improving the GRASS GIS project and the interfaces to QGIS, GDAL, PostGIS, R, OGC Services and others.<br />
<br />
In this meeting, building on momentum from the 40th birthday meeting, we will continue the revisions of the maintenance processes and infrastructure - a process which highly benefits from the current maintainers being in one place (and time zone). Topics which require highly synchronous collaboration will be included such as Markdown documentation and CMake build transitions. Other contributors are expected to enhance existing tools and their documentation. A [https://grass.osgeo.org/news/2023_08_13_grass_community_meeting_prague_june_2023_report/ press release] gives an overview of last year's event.<br />
<br />
We do require participants to work on GRASS GIS or connections to other projects. However, we leave them the freedom to work on what they think is the best contribution to the project given their skills and time available.<br />
<br />
For the detailed agenda and individual's plans, see below.<br />
<br />
== Program ==<br />
<br />
=== Thursday, June 13 ===<br />
<br />
Day of arrival. Contact organizers if you are interested in individualized program or helping with organization.<br />
<br />
=== Friday, June 14 ===<br />
<br />
* Welcome.<br />
* Refine shared goals.<br />
<br />
=== Saturday, June 15 ===<br />
<br />
=== Sunday, June 16 ===<br />
<br />
=== Monday, June 17 ===<br />
<br />
=== Tuesday, June 18 ===<br />
<br />
=== Wednesday, June 19 ===<br />
<br />
=== Thursday, June 20 ===<br />
<br />
Day of departure.<br />
<br />
== Participation ==<br />
<br />
We are planning for an attendance of 15 people at the same time but you are welcome to sign up regardless of capacity: We will find a space for you. Please add your name here or contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>:<br />
<br />
=== In person ===<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!width=100px|'''Arrival'''<br />
!width=100px|'''Departure'''<br />
!'''Topics'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| [[User:wenzeslaus|Vaclav Petras]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| review PR, reduce PR queue, Python API topics (also for QGIS and R), funding<br />
|<br />
|-<br />
|2<br />
| [[User:Annakrat|Anna Petrasova]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| grass.jupyter, R and QGIS integration<br />
|<br />
|-<br />
|3<br />
| [[User:Ctwhite|Corey White]]<br />
| United States <br />
| June 13<br />
| June 20<br />
| STAC, JSON outputs, connections with other tools (OpenPlains) <br />
|-<br />
|4<br />
| [[User:Chaedri|Caitlin Haedrich]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| grass.jupyter<br />
|<br />
|-<br />
|5<br />
| [[User:Veroandreo | Vero Andreo]]<br />
| United States<br />
| June 13<br />
| June 20<br />
| STAC, tutorials, website, documentation, contributing guidelines<br />
|<br />
|-<br />
|6<br />
| [[User:florisvdh | Floris Vanderhaeghe]]<br />
| Belgium<br />
| June 13<br />
| June 18 (morning)<br />
| Interfacing GRASS from R (parts of the [https://github.com/rsbivand/rgrass/discussions/78 todo-list])<br />
|<br />
|-<br />
|7<br />
| [[User:martinl | Martin Landa]]<br />
| Czech Republic<br />
| June 14<br />
| June 19<br />
| GUI, Modeler, Markdown, ...<br />
|<br />
|-<br />
|8<br />
| [[User:hellik | Helmut Kudrnovsky]]<br />
| Austria <br />
| June 14<br />
| June 16<br />
| ...<br />
|<br />
|-<br />
|}<br />
<br />
If you are arriving or departing on the days of the event, please specify the time, too.<br />
<br />
=== Online ===<br />
<br />
Join our [https://app.gitter.im/#/room/#grassgis_community:gitter.im Gitter chatroom]<br />
<br />
Gitter has a video (and backup will be Zoom).<br />
<br />
Participating virtually:<br />
<br />
{|class="wikitable sortable" border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#edf9c7; font-size:95%; empty-cells:show;" <br />
!width=50px|'''Number'''<br />
!width=130px|'''Participant '''<br />
!width=100px|'''Country'''<br />
!'''Topics'''<br />
!'''Times, synchronous or fully asynchronous'''<br />
!'''Notes'''<br />
|-<br />
|1<br />
| Be The First<br />
| Your Country<br />
| Your Topic<br />
| When you will be available (timezone, days, times)<br />
|<br />
|-<br />
|}<br />
<br />
== Venue ==<br />
<br />
[[File:Ncsu logo.jpg|240px|frameless|left]]<br />
[https://prague.ncsu.edu/about/ NC State European Center in Prague]<br><br />
Malé náměstí 144/1<br><br />
Praha 1 – 110 00<br><br />
Prague, Czech Republic<br><br />
<br />
[https://en.mapy.cz/s/fohulovaha Map]<br><br />
<br />
Prague, the capital of Czechia (Czech Republic) has an international [http://www.prg.aero/en/ airport]. It's location in the middle of central Europe makes it easily reachable by train, bus or car. The city itself has great public transportation.<br />
<br />
== Accommodation and Costs ==<br />
<br />
''Participation is free of charge''. However, participants should plan for the following costs:<br />
<br />
* Travel<br />
* Lodging<br />
* Food and drink (some may be covered)<br />
<br />
<br />
'''Please note''': The currency in Czech Republic is {{wikipedia|Czech crown}} (CZK, koruna, Kč). 100 Czech crowns are about 4 Euros (see [https://www.cnb.cz/cs/financni-trhy/devizovy-trh/kurzy-devizoveho-trhu/kurzy-devizoveho-trhu/ current rates]).<br />
<br />
== Individual Preparation ==<br />
<br />
* Bring your own computer<br />
* Bring {{wikipedia|AC adapter|power connector adapter}} if needed (Czech Republic: 230V, 50Hz, {{wikipedia|File:Euro-Flachstecker_2.jpg|Type C Europlugs}} are common and also {{wikipedia|File:French_plug_and_socket.jpg|Type E}})<br />
* Install git and the compiler tools, and come with a working GRASS development environment if possible. See [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md here] for details.<br />
<br />
== FAQ ==<br />
<br />
* ''How was it last time?''<br />
** Splendid! See [[GRASS Community Meeting Prague 2023]]!<br />
* ''Is the meeting just a coding event?''<br />
** It is mainly a coding and documentation event. It is a working session for people who are already participants in the GRASS project and/or are committed to improving the GRASS project. Committed newcomers are welcome! <br />
* ''Is the GRASS Community Meeting for developers only?''<br />
** No, anybody can help, with testing, checking out bugs and fixes, documentation and more.<br />
* ''Where can I get help and more information about the community meeting?''<br />
** Contact [[User:wenzeslaus|Vaclav Petras]] <tt><wenzeslaus at gmail com></tt>.</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=R_statistics/Installation&diff=27439R statistics/Installation2024-03-18T11:46:43Z<p>Neteler: /* Linux */ +install.packages("terra")</p>
<hr />
<div>First of all you need to install '''''R''''' in your system.<br />
<br />
R and many of its packages are pre-built and distributed through the CRAN network of mirrors. In addition many Linux distributions pre-package R and a number of the most popular libraries.<br />
<br />
=== Status of rgrass package ===<br />
<br />
See the overview here: https://cran.r-project.org/web/packages/rgrass/index.html<br />
<br />
=== Installation ===<br />
<br />
==== Linux ====<br />
<br />
===== Debian and Ubuntu =====<br />
<br />
''R'' and a number of pre-build cran packages are already present in the main repositories. Start with:<br />
<br />
# apt-get install r-base r-cran-vr r-cran-rodbc r-cran-xml<br />
<br />
Once those are installed start "<tt>R</tt>" at the command prompt and install the <tt>rgrass</tt> library:<br />
<br />
<source lang="bash"><br />
install.packages("rgrass", dependencies = TRUE)<br />
install.packages("terra")<br />
</source><br />
<br />
* [https://cran.r-project.org/bin/linux/debian/ Debian] and [https://cran.r-project.org/bin/linux/ubuntu/ Ubuntu] specific help is also available from the R-project website.<br />
<br />
===== RPM based =====<br />
<br />
* '''RedHat, Fedora, openSuse, ...''' and similar distros: <br />
<br />
# sudo dnf install R<br />
<br />
This R RPM is a meta-package. It has no content but ensures that the following components are installed: R-core, R-core-devel, R-java, R-java-devel, libRmath, libRmath-devel. Once those are installed, start "<tt>R</tt>" and install the <tt>rgrass</tt> library:<br />
<br />
<source lang="bash"><br />
install.packages("rgrass", dependencies = TRUE)<br />
install.packages("terra")<br />
</source><br />
<br />
==== Mac OSX ====<br />
<br />
Start an R session and try:<br />
<br />
<source lang="bash"><br />
install.packages("rgrass", type="source", dependencies = TRUE)<br />
</source><br />
<br />
'''Startup of GRASS from within R:'''<br />
<br />
First you need to find the path to the GRASS binaries: Control-click on the GRASS.app and you'll get a popup menu; select "Show Package Contents" - this opens you to the directory structure. Go to Contents->Resources which would be "GISBASE"; So, in my case, the "gisBase" parameter is "/HD/Applications/Grass-8.2.app/Contents/Resources". If you Command-click at the top of the window on the folder icon beside "Resources" (from the line above this one), you can see the full path.<br />
<br />
Now we can run GRASS from within a R session:<br />
<br />
<source lang="bash"><br />
library(rgrass)<br />
initGRASS(gisBase ='/Applications/GRASS-8.2.app/Contents/Resources', <br />
location = 'nc_spm_08_grass7', <br />
mapset = 'user1', <br />
gisDbase = '/Users/carol/Documents/grassdata', <br />
override = TRUE)<br />
</source><br />
<br />
===== Troubleshooting =====<br />
<br />
If you get an error message when trying to call GRASS from R containing this line: dyld: Library not loaded: /usr/local/lib/libintl.8.dylib you need to establish a link from /Applications/Grass/GRASS-8.2.app/Contents/MacOS/lib/libintl.8.dylib to /usr/local/lib. This can be done through Terminal with the command:<br />
<br />
<source lang="bash"><br />
sudo ln -s /Applications/Grass/GRASS-8.2.app/Contents/MacOS/lib/libintl.8.dylib /usr/local/lib/<br />
</source><br />
<br />
'''Note''': The path to the GRASS-x.x.app and the version number in libintl.X.dylib must reflect your own configuration.<br />
<br />
==== MS Windows ====<br />
<br />
===== Installation =====<br />
Run:<br />
install.packages("rgrass", dependencies = TRUE)<br />
<br />
or install Task View 'Spatial' - Analysis of Spatial Data<br />
install.packages("ctv")<br />
library(ctv)<br />
install.views("Spatial")<br />
<br />
===== Usage =====<br />
<br />
In winGRASS ([https://grass.osgeo.org/download/windows/#standalone-installers standalone installer] and [https://grass.osgeo.org/download/windows/#OSGeo4W OSGeo4W]) the installation path of R and RStudio are dynamically loaded into PATH.<br />
<br />
* Start winGRASS, bring the winGRASS-windows console in front and type ''R'' for opening an R session (command line mode) inside a GRASS session.<br />
* Start winGRASS, bring the winGRASS-windows console in front and type ''RGui'' for opening an R session (GUI mode) inside a GRASS session.<br />
<br />
[[Category:Installation]]<br />
[[Category:FAQ]]<br />
[[Category:Linking to other languages]]<br />
[[Category:R]]<br />
[[Category:Statistics]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=AddOns&diff=27425AddOns2024-03-07T10:59:47Z<p>Neteler: /* GRASS 8.x (current) */</p>
<hr />
<div>This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/ here]).<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
'''[http://grass.osgeo.org/grass8/manuals/addons/ GRASS GIS 8 Addons Manual pages] - a complete overview of available Addons'''<br />
<br />
== Building and installing AddOns ==<br />
<br />
=== Common users ===<br />
<br />
'''Graphical user interface:'''<br><br />
We recommend to use the [[wxGUI]] [[WxGUI#Extension Manager|Extension Manager]] (''Settings -> Addon extensions -> Install extensions from addons'') to install Addons.<br />
<br />
'''Command line:'''<br><br />
You can also use the {{cmd|g.extension}} module, e.g. to install <tt>r.fuzzy.system</tt> run:<br />
<br />
g.extension extension=r.fuzzy.system<br />
<br />
To remove installed AddOns run<br />
<br />
g.extension extension=r.fuzzy.system operation=remove<br />
<br />
=== Power users (not recommended for Windows users) ===<br />
<br />
For manual compiling see the [[Compile and Install#Addons|compile and install]] wiki page.<br />
<br />
== AddOns source code repository ==<br />
<br />
The AddOns source code is hosted in [https://github.com/osgeo/grass-addons GRASS-AddOns Github repository].<br />
<br />
== Adding something new ==<br />
<br />
=== How to obtain write-access ===<br />
While read access is granted to the public, for submissions you best fork this repository, insert your addon or fix an existing one in a new branch and finally open a [https://github.com/OSGeo/grass-addons/pulls pull request].<br />
<br />
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.<br />
<br />
=== Copyright and licensing information ===<br />
<br />
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''<br />
<br />
e.g. at the top of a shell script:<br />
<source lang=bash><br />
#!/bin/sh<br />
############################################################################<br />
#<br />
# MODULE: v.in.e00<br />
#<br />
# AUTHOR(S): Markus Neteler, Otto Dassau<br />
#<br />
# PURPOSE: Import E00 data into a GRASS vector map<br />
# Imports single and split E00 files (.e00, .e01, .e02 ...)<br />
#<br />
# COPYRIGHT: (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de<br />
#<br />
# This program is free software under the GNU General Public<br />
# License (>=v2). Read the file COPYING that comes with GRASS<br />
# for details.<br />
#<br />
#############################################################################<br />
#<br />
# REQUIREMENTS:<br />
# - avcimport: http://avce00.maptools.org<br />
<br />
[script follows]<br />
</source><br />
<br />
=== Coding standards ===<br />
<br />
Please have a look at our [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md CONTRIBUTING] documentation before submitting here.<br />
<br />
=== Documenting your code ===<br />
<br />
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the {{cmd|g.parser}} help page.<br />
<br />
== Miscellaneous Add-ons ==<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/grass6/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)<br />
<br />
<br />
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/ Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.<BR>'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)<br />
<br />
<br />
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! <BR>'''Author:'''Wolfgang Qual<br />
<br />
<br />
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.<BR>'''Author:''' Carlos Henrique Grohmann<br />
<br />
<br />
* [http://www.wgug.org/index.php?option=com_content&view=article&id=56&Itemid=9 ann.*] is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library ([http://leenissen.dk/fann/wp/ FANN]) v2.x. <BR>'''Author:''' Pawel Netzel<br />
<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/tools/csv_dequote.pl csv_dequote.pl] is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for {{Cmd|v.in.ascii}}. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (<tt>apt-get install libtext-csv-perl</tt>).<BR>'''Author''': Hamish Bowman<br />
<br />
==GRASS 8.x (current)==<br />
<br />
* See [https://grass.osgeo.org/grass8/manuals/addons/ AddOns/GRASS 8]<br />
<br />
==GRASS 7.x (old)==<br />
<br />
* See [[AddOns/GRASS 7]]<br />
<br />
== GRASS 6.x (very old) ==<br />
<br />
* See [[AddOns/GRASS 6]]<br />
<br />
==GRASS 5.x (historical)==<br />
<br />
* See [[AddOns/GRASS 5]]<br />
<br />
==GRASS 4.x (very historical)==<br />
<br />
* See [[AddOns/GRASS 4]]<br />
<br />
{{AddOns}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=AddOns&diff=27424AddOns2024-03-07T10:58:50Z<p>Neteler: </p>
<hr />
<div>This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/ here]).<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
'''[http://grass.osgeo.org/grass8/manuals/addons/ GRASS GIS 8 Addons Manual pages] - a complete overview of available Addons'''<br />
<br />
== Building and installing AddOns ==<br />
<br />
=== Common users ===<br />
<br />
'''Graphical user interface:'''<br><br />
We recommend to use the [[wxGUI]] [[WxGUI#Extension Manager|Extension Manager]] (''Settings -> Addon extensions -> Install extensions from addons'') to install Addons.<br />
<br />
'''Command line:'''<br><br />
You can also use the {{cmd|g.extension}} module, e.g. to install <tt>r.fuzzy.system</tt> run:<br />
<br />
g.extension extension=r.fuzzy.system<br />
<br />
To remove installed AddOns run<br />
<br />
g.extension extension=r.fuzzy.system operation=remove<br />
<br />
=== Power users (not recommended for Windows users) ===<br />
<br />
For manual compiling see the [[Compile and Install#Addons|compile and install]] wiki page.<br />
<br />
== AddOns source code repository ==<br />
<br />
The AddOns source code is hosted in [https://github.com/osgeo/grass-addons GRASS-AddOns Github repository].<br />
<br />
== Adding something new ==<br />
<br />
=== How to obtain write-access ===<br />
While read access is granted to the public, for submissions you best fork this repository, insert your addon or fix an existing one in a new branch and finally open a [https://github.com/OSGeo/grass-addons/pulls pull request].<br />
<br />
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.<br />
<br />
=== Copyright and licensing information ===<br />
<br />
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''<br />
<br />
e.g. at the top of a shell script:<br />
<source lang=bash><br />
#!/bin/sh<br />
############################################################################<br />
#<br />
# MODULE: v.in.e00<br />
#<br />
# AUTHOR(S): Markus Neteler, Otto Dassau<br />
#<br />
# PURPOSE: Import E00 data into a GRASS vector map<br />
# Imports single and split E00 files (.e00, .e01, .e02 ...)<br />
#<br />
# COPYRIGHT: (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de<br />
#<br />
# This program is free software under the GNU General Public<br />
# License (>=v2). Read the file COPYING that comes with GRASS<br />
# for details.<br />
#<br />
#############################################################################<br />
#<br />
# REQUIREMENTS:<br />
# - avcimport: http://avce00.maptools.org<br />
<br />
[script follows]<br />
</source><br />
<br />
=== Coding standards ===<br />
<br />
Please have a look at our [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md CONTRIBUTING] documentation before submitting here.<br />
<br />
=== Documenting your code ===<br />
<br />
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the {{cmd|g.parser}} help page.<br />
<br />
== Miscellaneous Add-ons ==<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/grass6/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)<br />
<br />
<br />
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/ Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.<BR>'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)<br />
<br />
<br />
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! <BR>'''Author:'''Wolfgang Qual<br />
<br />
<br />
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.<BR>'''Author:''' Carlos Henrique Grohmann<br />
<br />
<br />
* [http://www.wgug.org/index.php?option=com_content&view=article&id=56&Itemid=9 ann.*] is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library ([http://leenissen.dk/fann/wp/ FANN]) v2.x. <BR>'''Author:''' Pawel Netzel<br />
<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/tools/csv_dequote.pl csv_dequote.pl] is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for {{Cmd|v.in.ascii}}. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (<tt>apt-get install libtext-csv-perl</tt>).<BR>'''Author''': Hamish Bowman<br />
<br />
==GRASS 8.x (current)==<br />
<br />
* See [[AddOns/GRASS 8]]<br />
<br />
==GRASS 7.x (old)==<br />
<br />
* See [[AddOns/GRASS 7]]<br />
<br />
== GRASS 6.x (very old) ==<br />
<br />
* See [[AddOns/GRASS 6]]<br />
<br />
==GRASS 5.x (historical)==<br />
<br />
* See [[AddOns/GRASS 5]]<br />
<br />
==GRASS 4.x (very historical)==<br />
<br />
* See [[AddOns/GRASS 4]]<br />
<br />
{{AddOns}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=AddOns&diff=27423AddOns2024-03-07T10:58:01Z<p>Neteler: https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md</p>
<hr />
<div>This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/ here]).<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
'''[http://grass.osgeo.org/grass8/manuals/addons/ GRASS GIS 8 Addons Manual pages] - a complete overview of available Addons'''<br />
<br />
== Building and installing AddOns ==<br />
<br />
=== Common users ===<br />
<br />
'''Graphical user interface:'''<br><br />
We recommend to use the [[wxGUI]] [[WxGUI#Extension Manager|Extension Manager]] (''Settings -> Addon extensions -> Install extensions from addons'') to install Addons.<br />
<br />
'''Command line:'''<br><br />
You can also use the {{cmd|g.extension}} module, e.g. to install <tt>r.fuzzy.system</tt> run:<br />
<br />
g.extension extension=r.fuzzy.system<br />
<br />
To remove installed AddOns run<br />
<br />
g.extension extension=r.fuzzy.system operation=remove<br />
<br />
=== Power users (not recommended for Windows users) ===<br />
<br />
For manual compiling see the [[Compile and Install#Addons|compile and install]] wiki page.<br />
<br />
== AddOns source code repository ==<br />
<br />
The AddOns source code is hosted in [https://github.com/osgeo/grass-addons GRASS-AddOns Github repository].<br />
<br />
== Adding something new ==<br />
<br />
=== How to obtain write-access ===<br />
While read access is granted to the public, for submissions you best fork this repository, insert your addon or fix an existing one in a new branch and finally open a [https://github.com/OSGeo/grass-addons/pulls pull request].<br />
<br />
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.<br />
<br />
=== Copyright and licensing information ===<br />
<br />
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''<br />
<br />
e.g. at the top of a shell script:<br />
<source lang=bash><br />
#!/bin/sh<br />
############################################################################<br />
#<br />
# MODULE: v.in.e00<br />
#<br />
# AUTHOR(S): Markus Neteler, Otto Dassau<br />
#<br />
# PURPOSE: Import E00 data into a GRASS vector map<br />
# Imports single and split E00 files (.e00, .e01, .e02 ...)<br />
#<br />
# COPYRIGHT: (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de<br />
#<br />
# This program is free software under the GNU General Public<br />
# License (>=v2). Read the file COPYING that comes with GRASS<br />
# for details.<br />
#<br />
#############################################################################<br />
#<br />
# REQUIREMENTS:<br />
# - avcimport: http://avce00.maptools.org<br />
<br />
[script follows]<br />
</source><br />
<br />
=== Coding standards ===<br />
<br />
Please have a look at our [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md CONTRIBUTING] documentation before submitting here.<br />
<br />
=== Documenting your code ===<br />
<br />
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the {{cmd|g.parser}} help page.<br />
<br />
== Miscellaneous Add-ons ==<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/grass6/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)<br />
<br />
<br />
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/ Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.<BR>'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)<br />
<br />
<br />
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! <BR>'''Author:'''Wolfgang Qual<br />
<br />
<br />
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.<BR>'''Author:''' Carlos Henrique Grohmann<br />
<br />
<br />
* [http://www.wgug.org/index.php?option=com_content&view=article&id=56&Itemid=9 ann.*] is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library ([http://leenissen.dk/fann/wp/ FANN]) v2.x. <BR>'''Author:''' Pawel Netzel<br />
<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/tools/csv_dequote.pl csv_dequote.pl] is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for {{Cmd|v.in.ascii}}. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (<tt>apt-get install libtext-csv-perl</tt>).<BR>'''Author''': Hamish Bowman<br />
<br />
==GRASS 7.x (current)==<br />
<br />
* See [[AddOns/GRASS 7]]<br />
<br />
== GRASS 6.x (previous) ==<br />
<br />
* See [[AddOns/GRASS 6]]<br />
<br />
==GRASS 5.x (old)==<br />
<br />
* See [[AddOns/GRASS 5]]<br />
<br />
==GRASS 4.x (very old)==<br />
<br />
* See [[AddOns/GRASS 4]]<br />
<br />
{{AddOns}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=AddOns&diff=27422AddOns2024-03-07T10:56:10Z<p>Neteler: Update to GitHub</p>
<hr />
<div>This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/ here]).<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
'''[http://grass.osgeo.org/grass8/manuals/addons/ GRASS GIS 8 Addons Manual pages] - a complete overview of available Addons'''<br />
<br />
== Building and installing AddOns ==<br />
<br />
=== Common users ===<br />
<br />
'''Graphical user interface:'''<br><br />
We recommend to use the [[wxGUI]] [[WxGUI#Extension Manager|Extension Manager]] (''Settings -> Addon extensions -> Install extensions from addons'') to install Addons.<br />
<br />
'''Command line:'''<br><br />
You can also use the {{cmd|g.extension}} module, e.g. to install <tt>r.fuzzy.system</tt> run:<br />
<br />
g.extension extension=r.fuzzy.system<br />
<br />
To remove installed AddOns run<br />
<br />
g.extension extension=r.fuzzy.system operation=remove<br />
<br />
=== Power users (not recommended for Windows users) ===<br />
<br />
For manual compiling see the [[Compile and Install#Addons|compile and install]] wiki page.<br />
<br />
== AddOns source code repository ==<br />
<br />
The AddOns source code is hosted in [https://github.com/osgeo/grass-addons GRASS-AddOns Github repository].<br />
<br />
== Adding something new ==<br />
<br />
=== How to obtain write-access ===<br />
While read access is granted to the public, for submissions you best fork this repository, insert your addon or fix an existing one in a new branch and finally open a [https://github.com/OSGeo/grass-addons/pulls pull request].<br />
<br />
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.<br />
<br />
=== Copyright and licensing information ===<br />
<br />
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''<br />
<br />
e.g. at the top of a shell script:<br />
<source lang=bash><br />
#!/bin/sh<br />
############################################################################<br />
#<br />
# MODULE: v.in.e00<br />
#<br />
# AUTHOR(S): Markus Neteler, Otto Dassau<br />
#<br />
# PURPOSE: Import E00 data into a GRASS vector map<br />
# Imports single and split E00 files (.e00, .e01, .e02 ...)<br />
#<br />
# COPYRIGHT: (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de<br />
#<br />
# This program is free software under the GNU General Public<br />
# License (>=v2). Read the file COPYING that comes with GRASS<br />
# for details.<br />
#<br />
#############################################################################<br />
#<br />
# REQUIREMENTS:<br />
# - avcimport: http://avce00.maptools.org<br />
<br />
[script follows]<br />
</source><br />
<br />
=== Coding standards ===<br />
<br />
Please have a look at our {{src|SUBMITTING}} for C-programs and {{src|SUBMITTING_PYTHON}} for Python scripts before submitting here.<br />
<br />
=== Documenting your code ===<br />
<br />
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the {{cmd|g.parser}} help page.<br />
<br />
== Miscellaneous Add-ons ==<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/grass6/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)<br />
<br />
<br />
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/ Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.<BR>'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)<br />
<br />
<br />
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! <BR>'''Author:'''Wolfgang Qual<br />
<br />
<br />
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.<BR>'''Author:''' Carlos Henrique Grohmann<br />
<br />
<br />
* [http://www.wgug.org/index.php?option=com_content&view=article&id=56&Itemid=9 ann.*] is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library ([http://leenissen.dk/fann/wp/ FANN]) v2.x. <BR>'''Author:''' Pawel Netzel<br />
<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/tools/csv_dequote.pl csv_dequote.pl] is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for {{Cmd|v.in.ascii}}. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (<tt>apt-get install libtext-csv-perl</tt>).<BR>'''Author''': Hamish Bowman<br />
<br />
==GRASS 7.x (current)==<br />
<br />
* See [[AddOns/GRASS 7]]<br />
<br />
== GRASS 6.x (previous) ==<br />
<br />
* See [[AddOns/GRASS 6]]<br />
<br />
==GRASS 5.x (old)==<br />
<br />
* See [[AddOns/GRASS 5]]<br />
<br />
==GRASS 4.x (very old)==<br />
<br />
* See [[AddOns/GRASS 4]]<br />
<br />
{{AddOns}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=AddOns&diff=27421AddOns2024-03-07T10:54:30Z<p>Neteler: G7 -> G8</p>
<hr />
<div>This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/ here]).<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
'''[http://grass.osgeo.org/grass8/manuals/addons/ GRASS GIS 8 Addons Manual pages] - a complete overview of available Addons'''<br />
<br />
== Building and installing AddOns ==<br />
<br />
=== Common users ===<br />
<br />
'''Graphical user interface:'''<br><br />
We recommend to use the [[wxGUI]] [[WxGUI#Extension Manager|Extension Manager]] (''Settings -> Addon extensions -> Install extensions from addons'') to install Addons.<br />
<br />
'''Command line:'''<br><br />
You can also use the {{cmd|g.extension}} module, e.g. to install <tt>r.fuzzy.system</tt> run:<br />
<br />
g.extension extension=r.fuzzy.system<br />
<br />
To remove installed AddOns run<br />
<br />
g.extension extension=r.fuzzy.system operation=remove<br />
<br />
=== Power users (not recommended for Windows users) ===<br />
<br />
For manual compiling see the [[Compile and Install#Addons|compile and install]] wiki page.<br />
<br />
== AddOns source code repository ==<br />
<br />
The AddOns source code is hosted in [https://github.com/osgeo/grass-addons GRASS-AddOns Github repository].<br />
<br />
== Adding something new ==<br />
<br />
=== How to obtain write-access ===<br />
<br />
Please read [http://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository how to get write access to the GRASS-Addons-SVN repository] and contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.<br />
<br />
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.<br />
<br />
=== Copyright and licensing information ===<br />
<br />
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''<br />
<br />
e.g. at the top of a shell script:<br />
<source lang=bash><br />
#!/bin/sh<br />
############################################################################<br />
#<br />
# MODULE: v.in.e00<br />
#<br />
# AUTHOR(S): Markus Neteler, Otto Dassau<br />
#<br />
# PURPOSE: Import E00 data into a GRASS vector map<br />
# Imports single and split E00 files (.e00, .e01, .e02 ...)<br />
#<br />
# COPYRIGHT: (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de<br />
#<br />
# This program is free software under the GNU General Public<br />
# License (>=v2). Read the file COPYING that comes with GRASS<br />
# for details.<br />
#<br />
#############################################################################<br />
#<br />
# REQUIREMENTS:<br />
# - avcimport: http://avce00.maptools.org<br />
<br />
[script follows]<br />
</source><br />
<br />
=== Coding standards ===<br />
<br />
Please have a look at our {{src|SUBMITTING}} for C-programs and {{src|SUBMITTING_PYTHON}} for Python scripts before submitting here.<br />
<br />
=== Documenting your code ===<br />
<br />
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the {{cmd|g.parser}} help page.<br />
<br />
== Miscellaneous Add-ons ==<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/grass6/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)<br />
<br />
<br />
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/ Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.<BR>'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)<br />
<br />
<br />
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! <BR>'''Author:'''Wolfgang Qual<br />
<br />
<br />
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.<BR>'''Author:''' Carlos Henrique Grohmann<br />
<br />
<br />
* [http://www.wgug.org/index.php?option=com_content&view=article&id=56&Itemid=9 ann.*] is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library ([http://leenissen.dk/fann/wp/ FANN]) v2.x. <BR>'''Author:''' Pawel Netzel<br />
<br />
<br />
* [http://trac.osgeo.org/grass/browser/grass-addons/tools/csv_dequote.pl csv_dequote.pl] is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for {{Cmd|v.in.ascii}}. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (<tt>apt-get install libtext-csv-perl</tt>).<BR>'''Author''': Hamish Bowman<br />
<br />
==GRASS 7.x (current)==<br />
<br />
* See [[AddOns/GRASS 7]]<br />
<br />
== GRASS 6.x (previous) ==<br />
<br />
* See [[AddOns/GRASS 6]]<br />
<br />
==GRASS 5.x (old)==<br />
<br />
* See [[AddOns/GRASS 5]]<br />
<br />
==GRASS 4.x (very old)==<br />
<br />
* See [[AddOns/GRASS 4]]<br />
<br />
{{AddOns}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki&diff=27420GRASS-Wiki2024-03-07T10:53:59Z<p>Neteler: GRASS GIS 8.3.2 is available</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|-<br />
| width="68%" style="vertical-align:top" |<br />
<div style="margin:0; margin-right:10px; border:1px solid #dfdfdf; background-color:#f8f8ff;"><br />
<br />
<div style="padding:0.3em 1em 0.7em 1em;"><br />
<br />
[[Image:grasslogo_vector_small.png|right|link=https://grass.osgeo.org]]<br />
<br />
=== Welcome to the GRASS GIS Users Wiki ===<br />
<br />
{{website|documentation/general-overview|'''GRASS GIS'''}} is a [http://en.wikipedia.org/wiki/Geographic_information_system Geographic Information System] used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.<br />
<br />
On this Wiki, you can get and contribute to GRASS related information, documents and community provided add-ons programs. In case you wish edit here, you need to register and login first (see top right link).<br />
<br />
For GRASS GIS at a glance, see [[core features]]. For usage examples, see the [https://grass.osgeo.org/learn/gallery/ screenshot gallery] and [[Applications]]. And also visit the [https://grass.osgeo.org main GRASS GIS website].<br />
</div><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFE5E5;"><br />
'''What's hot:'''<br />
* '''Login update!''' As of Feb 2024 we have connected this Wiki to the [https://www.osgeo.org/community/getting-started-osgeo/osgeo_userid/ OSGeo authentication system]. Please register there if you still need to, otherwise just use your OSGeo-ID (technically your OSGeo-LDAP account).<br />
* <font size="+1">[https://github.com/OSGeo/grass/releases/tag/8.3.2 '''GRASS GIS 8.3.2''' is available!]</font> {{bullet}} [https://grass.osgeo.org/download/ download] {{bullet}} [https://github.com/OSGeo/grass/issues report any problems]<br />
* Explore [https://grass.osgeo.org/learn/ learning resources at the main page].<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
==== User Documentation and Support ====<br />
* [[GRASS Help|GRASS Help and Getting Started]]<br />
* [[GRASS Documents|In depth GRASS Documentation]]<br />
* [[Installation Guide]] for precompiled binaries<br />
* '''[[Faq|FAQ]] - Frequently Asked Questions'''<br />
* [[Applications]] - use cases of GRASS in various disciplines<br />
* [[wxGUI]] - Graphical User Interface based on wxPython<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Community ====<br />
* [[GRASS Community]]: Getting in touch<br />
* [[Applications|Research applications]]: What people are doing with GRASS<br />
* [[GRASS migration hints|Migrating to GRASS]]<br />
* [[GRASS Blogger]]<br />
* Get involved: [[Project jobs]]<br />
* [https://grass.osgeo.org/wiki/Special:Recentchanges?feed=rss RSS feed] of recent changes of this Wiki<br />
</div><br />
<br />
<br />
<div>Have a look at the GRASS GIS users worldwide [https://grass.osgeo.org/community GRASS GIS User Online]. If you operate a GRASS GIS installation, you are welcome to enter your user data there. <br />
</div><br />
<br />
<div><p>''[[GRASS-Wiki:Language policy|Translate this Wiki]]''</p></div><br />
<br />
<!-- RIGHT COLUMN --><br />
| width="38%" style="vertical-align:top" |<br />
<div style="margin:0; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:osgeo_logo.png|center|220px|link=http://www.osgeo.org]]<br />
<center>[http://www.osgeo.org OSGeo] Foundation Project</center><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:1em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:Btn_donate_SM.gif|center|link=https://grass.osgeo.org/donations/]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#f8f8ff;"><br />
* [https://grass.osgeo.org/screenshots GRASS Screenshots]<br />
* [https://github.com/OSGeo/grass/ GitHub] Source Code Repository<br />
* [https://grass.osgeo.org/support/mailing-lists Mailing lists] and [[IRC]]<br />
* [https://github.com/OSGeo/grass/issues Report errors or wishes]<br />
* [https://github.com/OSGeo/grass/blob/main/COPYING Licensed under GNU GPL]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Download ====<br />
* [https://grass.osgeo.org/download Source code and binaries]<br />
* '''[[AddOns]]'''<br />
* [[Promotional material]]<br />
* [[Sample datasets]]<br />
* [[Global datasets]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Development ====<br />
* [[Compile and Install]] of Source Code<br />
* [[Development|GRASS Development]] intro<br />
* [http://trac.osgeo.org/grass/wiki GRASS-trac]: the development Wiki, bugtracker, source code browser<br />
* [[Release Roadmap]]<br />
* [[GRASS 7 ideas collection]]<br />
* [[GRASS SoC Ideas|Google Summer of Code ideas collection]]<br />
* [http://trac.osgeo.org/grass/wiki/HowToContribute How to contribute to GRASS development] (getting write access and such)<br />
</div><br />
<br />
<!--<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
Project Metrics provided by [https://www.openhub.net/p/grass_gis Ohloh].<br />
<br />
{{#widget:Ohloh Project|id=3666|type=partner_badge}}<br />
</div><br />
--><br />
|}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Template:AddonCmd&diff=27419Template:AddonCmd2024-03-07T09:55:37Z<p>Neteler: </p>
<hr />
<div><includeonly><span class="plainlinks">[https://grass.osgeo.org/grass8/manuals/addons/{{{1}}}.html {{{desc|{{{1}}}}}}]</includeonly></span><noinclude><br />
Addon module manual page external link (default: GRASS GIS 8 latest stable). Usage:<br />
<br />
<nowiki>{{AddonCmd|module}}</nowiki><br />
<br />
or<br />
<br />
<nowiki>{{AddonCmd|module|version=83}} (in order to point to a particular version)</nowiki><br />
<br />
or<br />
<br />
<nowiki>{{AddonCmd|page|desc=Description of the page}}</nowiki><br />
<br />
For example<br />
<br />
<nowiki>{{AddonCmd|r.stream.slope}}</nowiki><br />
<br />
&rarr;<br />
<br />
: {{AddonCmd|r.stream.slope}}<br />
[[Category:Templates]]<br />
</noinclude></div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Template:Src&diff=27418Template:Src2024-03-07T09:53:44Z<p>Neteler: point to G83</p>
<hr />
<div><includeonly><span class="plainlinks">[https://github.com/OSGeo/grass/blob/{{{branch|main}}}/{{{1}}} {{{1}}}]</span></includeonly><noinclude>GRASS GIS GitHub source code browser link.<br />
<br />
== Usage ==<br />
<br />
"master":<br />
<br />
<nowiki>{{src|path/filename.c}}</nowiki><br />
<br />
"release branch":<br />
<br />
<nowiki>{{src|path/filename.c|branch=releasebranch_8_3}}</nowiki><br />
<br />
The default is currently set to ''master'' (GRASS GIS 8)<br />
* for GRASS 8.3.git use <tt>releasebranch_8_3</tt><br />
* for GRASS 7.8.git use <tt>releasebranch_7_8</tt><br />
<br />
== Examples ==<br />
<br />
To refer to "master", use:<br />
<br />
<nowiki>{{src|raster/r.info/main.c}}</nowiki><br />
<br />
which creates<br />
<br />
: {{src|raster/r.info/main.c}}<br />
<br />
<br />
To refer to "releasebranch_8_3", use:<br />
<br />
<nowiki>{{src|raster/r.info/main.c|branch=releasebranch_8_3}}</nowiki><br />
<br />
which creates<br />
<br />
: {{src|raster/r.info/main.c|branch=releasebranch_8_3}}<br />
<br />
[[Category:Templates]]<br />
</noinclude></div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Template:Cmd&diff=27417Template:Cmd2024-03-07T09:50:24Z<p>Neteler: GRASS GIS 8.2 -> 8.3</p>
<hr />
<div><span class="plainlinks">[https://grass.osgeo.org/grass{{{version|-stable}}}/manuals/{{{1}}}.html {{{desc|{{{1}}}}}}]</span><noinclude><br />
Module manual page external link (default: latest release aka stable). Usage:<br />
<br />
<nowiki>{{cmd|module}}</nowiki><br />
<br />
or<br />
<br />
<nowiki>{{cmd|module|version=83}} (in order to point to a particular version)</nowiki><br />
<br />
or<br />
<br />
<nowiki>{{cmd|page|desc=Description of the page}}</nowiki><br />
<br />
For example<br />
<br />
<nowiki>{{cmd|v.in.dxf}}</nowiki><br />
<br />
&rarr;<br />
<br />
: {{cmd|v.in.dxf}}<br />
<br />
<nowiki>{{cmd|databaseintro|desc=Database management in GRASS GIS}}</nowiki><br />
<br />
&rarr;<br />
<br />
: {{cmd|databaseintro|desc=Database management in GRASS GIS}}<br />
<br />
[[Category:Templates]]<br />
</noinclude></div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Hydrological_Sciences&diff=27415Hydrological Sciences2024-03-01T16:47:37Z<p>Neteler: /* Stream modules */</p>
<hr />
<div>== Tutorials ==<br />
<br />
* [[Creating watersheds]]<br />
* [https://baharmon.github.io/watersheds-in-grass Watersheds in GRASS GIS] by Brendan Harmon<br />
* [https://baharmon.github.io/hydrology-in-grass A tutorial on hydrological modeling and simulation in GRASS GIS] by Brendan Harmon<br />
* [https://baharmon.github.io/flooding-in-grass Flooding in GRASS GIS] by Brendan Harmon<br />
* [[R.basin]]<br />
* [[R.stream.* modules]]<br />
<br />
== Flow calculation ==<br />
<br />
* {{cmd|r.carve}}: Takes vector stream data, transforms it to raster and subtracts depth from the output DEM.<br />
* {{cmd|r.drain}}: Traces a flow through an elevation model on a raster map.<br />
* {{cmd|r.fillnulls}}: Fills no-data areas in raster maps using v.surf.rst splines interpolation<br />
* {{cmd|r.fill.dir}}: Filters and generates a depressionless elevation map and a flow direction map from a given elevation layer.<br />
* {{cmd|r.flow}}: Construction of slope curves (flowlines), flowpath lengths, and flowline densities (upslope areas) from a raster digital elevation model (DEM)<br />
* {{cmd|r.topidx}}: Creates topographic index [ln(a/tan(beta))] map from elevation map (topographic wetness index).<br />
* {{cmd|r.terraflow}}: Flow computation for massive grids.<br />
* {{AddonCmd|v.breach|version=64}}: Creates vector maps of lines and points of continuously lowering elevation down the input watercourses, based on the input raster DEM.<br />
* {{AddonCmd|r.traveltime}}: Computes the travel time of surface runoff to an outlet.<br />
* {{AddonCmd|r.lfp}}: Calculates the longest flow path.<br />
* {{AddonCmd|r.accumulate}}: Calculates weighted flow accumulation, stream networks, and the longest flow path using a flow direction map.<br />
<br />
== Groundwater flow ==<br />
<br />
* {{cmd|r.gwflow}}: Numerical calculation program for transient, confined and unconfined groundwater flow in two dimensions.<br />
* {{cmd|r3.gwflow}}: Numerical calculation program for transient, confined groundwater flow in three dimensions. See also [[Voxel]].<br />
<br />
Note: for the correct computation of tasks using {{cmd|r.gwflow}}, see the testsuite scripts [https://trac.osgeo.org/grass/browser/grass/trunk/raster/r.gwflow/testsuite/validation_7x7_grid.py validation_7x7_grid.py] and [https://trac.osgeo.org/grass/browser/grass/trunk/raster/r.gwflow/testsuite/validation_excavation.py validation_excavation.py]. Please be aware, that r.gwflow is a very simple groundwater computation tool. Many steps in groundwater modelling must be performed outside of r.gwflow, like calibration, temporally changing of boundary conditions, weather conditions and so on.<br />
<br />
AGU Poster as an example: http://www.urbanmetabolism.asia/sites/default/files/mehta_etal_aguposter2_48x36_horz.pdf<br />
<br />
== Hydrological models ==<br />
* [https://www.itzi.org/ Itzï] - a dynamic, fully distributed hydrologic and hydraulic model that simulates 2D surface flows on a regular raster grid using simplified shallow water equations. It uses GRASS GIS as a back-end for reading entry data and writing results.<br />
* {{cmd|r.topmodel}}: Simulates TOPMODEL which is a physically based hydrological model.<br />
** How to run r.topmodel: [http://idea.isnew.info/r.topmodel.html tutorial]<br />
* [[GRASS_AddOns#HydroFOSS|HydroFOSS]]: A distributed, physically based hydrological model.<br />
* [http://swatmodel.tamu.edu/software/swat-model/swat981-interfaces SWAT]: a river basin scale model developed to quantify the impact of land management practices in large, complex watersheds.<br />
* [http://grass.osgeo.org/gdp/hydrology/ r.water.fea] is an interactive program that allows the user to simulate storm water runoff analysis using the finite element numerical technique. Infiltration is calculated using the Green and Ampt formulation. r.water.fea computes and draws hydrographs for every basin as well as at stream junctions in an analysis area. It also draws animation maps at the basin level. The software is available within GRASS 4.x/5.x.<br />
* [[GRASS_AddOns#GIPE|GIPE]]: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models. (r.hydro.CASC2D - a physically-based, distributed, raster hydrological model which simulates the hydrological response of a watershed subject to a given rainfall field - is temporarily here waiting to return to main GRASS)<br />
<br />
== Sediment modules ==<br />
* {{cmd|r.sim.sediment}}: Sediment transport and erosion/deposition simulation using path sampling method (SIMWE)<br />
<br />
== Solute transport ==<br />
* {{cmd|r.solute.transport}}: Numerical calculation program for transient, confined and unconfined solute transport in two dimensions<br />
<br />
== Stream modules ==<br />
<br />
For an overview, see [[R.stream.*]].<br />
<br />
In GRASS 7/8+:<br />
<br />
* {{AddonCmd|r.stream.basins}}: Delineates basins according stream network.<br />
* {{AddonCmd|r.stream.channel}}: Calculates local parameters for individual streams. <br />
* {{AddonCmd|r.stream.distance}}: Calculates distance to and elevation above streams and outlet.<br />
* {{AddonCmd|r.stream.order}}: Calculates Strahler's and more streams hierarchy.<br />
* {{AddonCmd|r.stream.segment}}: Divides network into near straight-line segments and calculate its order. <br />
* {{AddonCmd|r.stream.slope}}: Calculates local parameters for slope subsystem. <br />
* {{AddonCmd|r.stream.snap}}: Snap point to modelled stream network.<br />
* {{AddonCmd|r.stream.stats}}: Calculates Horton's statistics for Strahler and Horton ordered networks created with r.stream.order. <br />
<br />
In GRASS 6 (old stable):<br />
<br />
* {{AddonCmd|r.stream.angle|version=64}}: Route azimuth, direction and relation to streams of higher order.<br />
* {{AddonCmd|r.stream.basins|version=64}}: Calculate basins according user input.<br />
* {{AddonCmd|r.stream.del|version=64}}: Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold.<br />
* {{AddonCmd|r.stream.distance|version=64}}: Calculate distance to and elevation above streams and outlets according user input. It can work in stream mode where target are streams and outlets mode where targets are outlets.<br />
* {{AddonCmd|r.stream.extract|version=64}}: Stream network extraction. It produces a vector network with the direction of the vector lines corresponding to the flow direction.<br />
* {{AddonCmd|r.stream.order|version=64}}: Calculate Strahler's and Horton's stream order Hack's main streams and Shreeve's stream magnitude. It uses r.watershed or r.stream.extract output files: stream, direction and optionally accumulation. Output data can be either from r.watershed or r.stream.extract but not from both together.<br />
* {{AddonCmd|r.stream.pos|version=64}}: Route azimuth, direction and relation to streams of higher order.<br />
* {{AddonCmd|r.stream.stats|version=64}}: Calculate Horton's and optionally Hack's statistics according to user input.<br />
<br />
== Watershed modules ==<br />
<br />
* {{cmd|r.basins.fill}}: Generates a raster map layer showing watershed subbasins.<br />
* {{cmd|r.water.outlet}}: Generates a watershed basin from a drainage direction map (from r.watershed) and a set of coordinates representing the outlet point of watershed.<br />
* {{cmd|r.watershed}}: Watershed basin analysis program.<br />
* {{cmd|r.lake}}: Fills a lake to a target water level from a given start point.<br />
* {{AddonCmd|r.basin}}: Generates the main morphometric parameters of the basin. Here a [[R.basin|tutorial]]<br />
* {{AddonCmd|r.threshold}}: Finds a first tentative value of upslope area to be used as input to extract the river network using r.stream.extract or r.watershed.<br />
* {{AddonCmd|r.hydrodem}}: Applies hydrological conditioning (sink removal) to a required input elevation map.<br />
<br />
<br />
[[Image:Flowacc_nviz.png|center|thumb|640px|Flow accumulation with Multiple Flow Directions (using{{cmd|r.watershed}}, North Carolina sample dataset)]]<br />
<br />
== Flooding areas ==<br />
<br />
* {{cmd|r.sim.water}}: Overland flow hydrologic simulation using path sampling method (SIMWE)<br />
* [[AddOns/GRASS_6#r.inund.fluv|r.inund.fluv]]: Allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model.<br />
* {{AddonCmd|r.hazard.flood}}: Is an implementation of a fast procedure to detect flood prone areas. It may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but may represent a tool for a preliminary delineation of flooding areas.<br />
<br />
== User hints ==<br />
<br />
=== Sink filling: why not needed in GRASS GIS ===<br />
<br />
Traditionally, contour lines created by land surveying provided more detail than available DEMs. Nowadays (e.g., since SRTM of 2001), DEMs provide more detail than contour lines and contour lines are meanwhile derived from a DEM. Therefore creating a DEM from contour lines which (if in doubt) have been created using a DEM is no longer recommended, rather use any DEM instead.<br />
<br />
'''Remarks on altering a DEM by filling sinks''':<br />
<br />
The ArcGIS reference for sink filling is Goodchild and Mark (1987), ignoring the literature of the past 27+ years. According to the [http://resources.arcgis.com/en/help/main/10.1/index.html#//009z0000007m000000 ArcGIS 10 documentation, "The program assumes that all unidentified sinks are errors"].<br />
<br />
Identified sinks are those supplied by the user. Unfortunately for ArcGIS, unidentified sinks are not errors but usually true terrain elevation, particularly in the year 1987 when LIDAR was not yet available and DEMs were derived from radar. That means that the elevation values surrounding sinks are erroneous rather than the sinks themselves. Two (of several) methods to deal with sinks in a more realistic way are the minimum impact approach of Lindsay & Creed (2005) which alters the DEM (implemented in GRASS as [http://svn.osgeo.org/grass/grass-addons/grass7/raster/r.hydrodem/ r.hydrodem] Addon) and {{cmd|r.watershed}} which does not alter the DEM.<br />
<br />
In short, you should carefully choose your hydrological software (e.g., RiverTools/Whitebox/TauDEM/GRASS GIS).<br />
<br />
== See also ==<br />
<br />
* [http://www.surfaces.co.il/flow-direction-from-grass-to-arcgis/ Flow Directions from GRASS to ArcGIS]<br />
<br />
== References ==<br />
<br />
* Bhowmik, AK, Metz, M. and Schäfer RB, 2014: Reproducible, Automated and Objective Stream Threshold Selection and Upstream Riparian Corridor Delineation from Digital Elevation Models ([http://semanticommunity.info/@api/deki/files/30406/4321a043.pdf PDF])<br />
* Metz, M. et al 2009: Fast Stream Extraction from Large, Radar-Based Elevation Models with Variable Level of Detail ([http://www.geomorphometry.org/system/files/metz2009geomorphometry.pdf PDF])<br />
* Metz, M. et al 2010: Accurate stream extraction from large, radar-based elevation models ([http://www.hydrol-earth-syst-sci-discuss.net/7/3213/2010/hessd-7-3213-2010.pdf PDF])<br />
* J Jasiewicz, M Metz, 2011: A new GRASS GIS toolkit for Hortonian analysis of drainage networks, Computers & Geosciences. [http://dx.doi.org/10.1016/j.cageo.2011.03.003 DOI]<br />
* Di Leo M., Di Stefano M., Claps P., Sole A., Caratterizzazione morfometrica del bacino idrografico in GRASS GIS, Geomatics Workbooks n.9, 2010 (89-100). ([http://geomatica.como.polimi.it/workbooks/n9/GW9-FOSS4Git_2010.pdf PDF]). (In Italian)<br />
* Di Leo M., Manfreda S., Fiorentino M., An automated procedure for the detection of flood prone areas: r.hazard.flood, Geomatics Workbooks n.10, 2011 (83-89). ([http://geomatica.como.polimi.it/workbooks/n10/GW10-FOSS4Git_2011.pdf PDF]).<br />
* Manfreda S., Di Leo M., Sole A., 2011: Detection of Flood Prone Areas using Digital Elevation Models, Journal of Hydrologic Engineering, (10.1061/(ASCE)HE.1943-5584.0000367).<br />
<br />
[[Category: Applications]]<br />
[[Category: Documentation]]<br />
[[Category: Hydrology]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Hydrological_Sciences&diff=27414Hydrological Sciences2024-03-01T16:47:10Z<p>Neteler: /* Sediment modules */ Solute transport</p>
<hr />
<div>== Tutorials ==<br />
<br />
* [[Creating watersheds]]<br />
* [https://baharmon.github.io/watersheds-in-grass Watersheds in GRASS GIS] by Brendan Harmon<br />
* [https://baharmon.github.io/hydrology-in-grass A tutorial on hydrological modeling and simulation in GRASS GIS] by Brendan Harmon<br />
* [https://baharmon.github.io/flooding-in-grass Flooding in GRASS GIS] by Brendan Harmon<br />
* [[R.basin]]<br />
* [[R.stream.* modules]]<br />
<br />
== Flow calculation ==<br />
<br />
* {{cmd|r.carve}}: Takes vector stream data, transforms it to raster and subtracts depth from the output DEM.<br />
* {{cmd|r.drain}}: Traces a flow through an elevation model on a raster map.<br />
* {{cmd|r.fillnulls}}: Fills no-data areas in raster maps using v.surf.rst splines interpolation<br />
* {{cmd|r.fill.dir}}: Filters and generates a depressionless elevation map and a flow direction map from a given elevation layer.<br />
* {{cmd|r.flow}}: Construction of slope curves (flowlines), flowpath lengths, and flowline densities (upslope areas) from a raster digital elevation model (DEM)<br />
* {{cmd|r.topidx}}: Creates topographic index [ln(a/tan(beta))] map from elevation map (topographic wetness index).<br />
* {{cmd|r.terraflow}}: Flow computation for massive grids.<br />
* {{AddonCmd|v.breach|version=64}}: Creates vector maps of lines and points of continuously lowering elevation down the input watercourses, based on the input raster DEM.<br />
* {{AddonCmd|r.traveltime}}: Computes the travel time of surface runoff to an outlet.<br />
* {{AddonCmd|r.lfp}}: Calculates the longest flow path.<br />
* {{AddonCmd|r.accumulate}}: Calculates weighted flow accumulation, stream networks, and the longest flow path using a flow direction map.<br />
<br />
== Groundwater flow ==<br />
<br />
* {{cmd|r.gwflow}}: Numerical calculation program for transient, confined and unconfined groundwater flow in two dimensions.<br />
* {{cmd|r3.gwflow}}: Numerical calculation program for transient, confined groundwater flow in three dimensions. See also [[Voxel]].<br />
<br />
Note: for the correct computation of tasks using {{cmd|r.gwflow}}, see the testsuite scripts [https://trac.osgeo.org/grass/browser/grass/trunk/raster/r.gwflow/testsuite/validation_7x7_grid.py validation_7x7_grid.py] and [https://trac.osgeo.org/grass/browser/grass/trunk/raster/r.gwflow/testsuite/validation_excavation.py validation_excavation.py]. Please be aware, that r.gwflow is a very simple groundwater computation tool. Many steps in groundwater modelling must be performed outside of r.gwflow, like calibration, temporally changing of boundary conditions, weather conditions and so on.<br />
<br />
AGU Poster as an example: http://www.urbanmetabolism.asia/sites/default/files/mehta_etal_aguposter2_48x36_horz.pdf<br />
<br />
== Hydrological models ==<br />
* [https://www.itzi.org/ Itzï] - a dynamic, fully distributed hydrologic and hydraulic model that simulates 2D surface flows on a regular raster grid using simplified shallow water equations. It uses GRASS GIS as a back-end for reading entry data and writing results.<br />
* {{cmd|r.topmodel}}: Simulates TOPMODEL which is a physically based hydrological model.<br />
** How to run r.topmodel: [http://idea.isnew.info/r.topmodel.html tutorial]<br />
* [[GRASS_AddOns#HydroFOSS|HydroFOSS]]: A distributed, physically based hydrological model.<br />
* [http://swatmodel.tamu.edu/software/swat-model/swat981-interfaces SWAT]: a river basin scale model developed to quantify the impact of land management practices in large, complex watersheds.<br />
* [http://grass.osgeo.org/gdp/hydrology/ r.water.fea] is an interactive program that allows the user to simulate storm water runoff analysis using the finite element numerical technique. Infiltration is calculated using the Green and Ampt formulation. r.water.fea computes and draws hydrographs for every basin as well as at stream junctions in an analysis area. It also draws animation maps at the basin level. The software is available within GRASS 4.x/5.x.<br />
* [[GRASS_AddOns#GIPE|GIPE]]: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models. (r.hydro.CASC2D - a physically-based, distributed, raster hydrological model which simulates the hydrological response of a watershed subject to a given rainfall field - is temporarily here waiting to return to main GRASS)<br />
<br />
== Sediment modules ==<br />
* {{cmd|r.sim.sediment}}: Sediment transport and erosion/deposition simulation using path sampling method (SIMWE)<br />
<br />
== Solute transport ==<br />
* {{cmd|r.solute.transport}}: Numerical calculation program for transient, confined and unconfined solute transport in two dimensions<br />
<br />
== Stream modules ==<br />
<br />
For an overview, see [[R.stream.*]].<br />
<br />
In GRASS 7:<br />
<br />
* {{AddonCmd|r.stream.basins}}: Delineates basins according stream network.<br />
* {{AddonCmd|r.stream.channel}}: Calculates local parameters for individual streams. <br />
* {{AddonCmd|r.stream.distance}}: Calculates distance to and elevation above streams and outlet.<br />
* {{AddonCmd|r.stream.order}}: Calculates Strahler's and more streams hierarchy.<br />
* {{AddonCmd|r.stream.segment}}: Divides network into near straight-line segments and calculate its order. <br />
* {{AddonCmd|r.stream.slope}}: Calculates local parameters for slope subsystem. <br />
* {{AddonCmd|r.stream.snap}}: Snap point to modelled stream network.<br />
* {{AddonCmd|r.stream.stats}}: Calculates Horton's statistics for Strahler and Horton ordered networks created with r.stream.order. <br />
<br />
In GRASS 6 (old stable):<br />
<br />
* {{AddonCmd|r.stream.angle|version=64}}: Route azimuth, direction and relation to streams of higher order.<br />
* {{AddonCmd|r.stream.basins|version=64}}: Calculate basins according user input.<br />
* {{AddonCmd|r.stream.del|version=64}}: Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold.<br />
* {{AddonCmd|r.stream.distance|version=64}}: Calculate distance to and elevation above streams and outlets according user input. It can work in stream mode where target are streams and outlets mode where targets are outlets.<br />
* {{AddonCmd|r.stream.extract|version=64}}: Stream network extraction. It produces a vector network with the direction of the vector lines corresponding to the flow direction.<br />
* {{AddonCmd|r.stream.order|version=64}}: Calculate Strahler's and Horton's stream order Hack's main streams and Shreeve's stream magnitude. It uses r.watershed or r.stream.extract output files: stream, direction and optionally accumulation. Output data can be either from r.watershed or r.stream.extract but not from both together.<br />
* {{AddonCmd|r.stream.pos|version=64}}: Route azimuth, direction and relation to streams of higher order.<br />
* {{AddonCmd|r.stream.stats|version=64}}: Calculate Horton's and optionally Hack's statistics according to user input.<br />
<br />
== Watershed modules ==<br />
<br />
* {{cmd|r.basins.fill}}: Generates a raster map layer showing watershed subbasins.<br />
* {{cmd|r.water.outlet}}: Generates a watershed basin from a drainage direction map (from r.watershed) and a set of coordinates representing the outlet point of watershed.<br />
* {{cmd|r.watershed}}: Watershed basin analysis program.<br />
* {{cmd|r.lake}}: Fills a lake to a target water level from a given start point.<br />
* {{AddonCmd|r.basin}}: Generates the main morphometric parameters of the basin. Here a [[R.basin|tutorial]]<br />
* {{AddonCmd|r.threshold}}: Finds a first tentative value of upslope area to be used as input to extract the river network using r.stream.extract or r.watershed.<br />
* {{AddonCmd|r.hydrodem}}: Applies hydrological conditioning (sink removal) to a required input elevation map.<br />
<br />
<br />
[[Image:Flowacc_nviz.png|center|thumb|640px|Flow accumulation with Multiple Flow Directions (using{{cmd|r.watershed}}, North Carolina sample dataset)]]<br />
<br />
== Flooding areas ==<br />
<br />
* {{cmd|r.sim.water}}: Overland flow hydrologic simulation using path sampling method (SIMWE)<br />
* [[AddOns/GRASS_6#r.inund.fluv|r.inund.fluv]]: Allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model.<br />
* {{AddonCmd|r.hazard.flood}}: Is an implementation of a fast procedure to detect flood prone areas. It may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but may represent a tool for a preliminary delineation of flooding areas.<br />
<br />
== User hints ==<br />
<br />
=== Sink filling: why not needed in GRASS GIS ===<br />
<br />
Traditionally, contour lines created by land surveying provided more detail than available DEMs. Nowadays (e.g., since SRTM of 2001), DEMs provide more detail than contour lines and contour lines are meanwhile derived from a DEM. Therefore creating a DEM from contour lines which (if in doubt) have been created using a DEM is no longer recommended, rather use any DEM instead.<br />
<br />
'''Remarks on altering a DEM by filling sinks''':<br />
<br />
The ArcGIS reference for sink filling is Goodchild and Mark (1987), ignoring the literature of the past 27+ years. According to the [http://resources.arcgis.com/en/help/main/10.1/index.html#//009z0000007m000000 ArcGIS 10 documentation, "The program assumes that all unidentified sinks are errors"].<br />
<br />
Identified sinks are those supplied by the user. Unfortunately for ArcGIS, unidentified sinks are not errors but usually true terrain elevation, particularly in the year 1987 when LIDAR was not yet available and DEMs were derived from radar. That means that the elevation values surrounding sinks are erroneous rather than the sinks themselves. Two (of several) methods to deal with sinks in a more realistic way are the minimum impact approach of Lindsay & Creed (2005) which alters the DEM (implemented in GRASS as [http://svn.osgeo.org/grass/grass-addons/grass7/raster/r.hydrodem/ r.hydrodem] Addon) and {{cmd|r.watershed}} which does not alter the DEM.<br />
<br />
In short, you should carefully choose your hydrological software (e.g., RiverTools/Whitebox/TauDEM/GRASS GIS).<br />
<br />
== See also ==<br />
<br />
* [http://www.surfaces.co.il/flow-direction-from-grass-to-arcgis/ Flow Directions from GRASS to ArcGIS]<br />
<br />
== References ==<br />
<br />
* Bhowmik, AK, Metz, M. and Schäfer RB, 2014: Reproducible, Automated and Objective Stream Threshold Selection and Upstream Riparian Corridor Delineation from Digital Elevation Models ([http://semanticommunity.info/@api/deki/files/30406/4321a043.pdf PDF])<br />
* Metz, M. et al 2009: Fast Stream Extraction from Large, Radar-Based Elevation Models with Variable Level of Detail ([http://www.geomorphometry.org/system/files/metz2009geomorphometry.pdf PDF])<br />
* Metz, M. et al 2010: Accurate stream extraction from large, radar-based elevation models ([http://www.hydrol-earth-syst-sci-discuss.net/7/3213/2010/hessd-7-3213-2010.pdf PDF])<br />
* J Jasiewicz, M Metz, 2011: A new GRASS GIS toolkit for Hortonian analysis of drainage networks, Computers & Geosciences. [http://dx.doi.org/10.1016/j.cageo.2011.03.003 DOI]<br />
* Di Leo M., Di Stefano M., Claps P., Sole A., Caratterizzazione morfometrica del bacino idrografico in GRASS GIS, Geomatics Workbooks n.9, 2010 (89-100). ([http://geomatica.como.polimi.it/workbooks/n9/GW9-FOSS4Git_2010.pdf PDF]). (In Italian)<br />
* Di Leo M., Manfreda S., Fiorentino M., An automated procedure for the detection of flood prone areas: r.hazard.flood, Geomatics Workbooks n.10, 2011 (83-89). ([http://geomatica.como.polimi.it/workbooks/n10/GW10-FOSS4Git_2011.pdf PDF]).<br />
* Manfreda S., Di Leo M., Sole A., 2011: Detection of Flood Prone Areas using Digital Elevation Models, Journal of Hydrologic Engineering, (10.1061/(ASCE)HE.1943-5584.0000367).<br />
<br />
[[Category: Applications]]<br />
[[Category: Documentation]]<br />
[[Category: Hydrology]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Supercomputing&diff=27392Supercomputing2024-02-19T13:29:51Z<p>Neteler: GRASS GIS 8 on LUMI Supercomputer in Finland</p>
<hr />
<div>This page aims to<br />
<br />
* '''overview''' installations of GRASS GIS in [https://en.wikipedia.org/wiki/Supercomputer supercomputing] (HPC, HTC) environments and related applications<br />
* '''document''' best practices of processing big geospatial data, common mistakes and errors and how to work-around them<br />
<br />
= Overview of GRASS GIS in supercomputing environments =<br />
<br />
* GRASS GIS 8 on LUMI Supercomputer in Finland: https://docs.csc.fi/apps/grass/<br />
* [https://vs.sav.sk/?lang=en&section=departments&sub=vvt&sub2=services Supercomputer "Aurel"], 4096 CPU cores (Power7 architecture), features GRASS GIS 7.4<br />
* GRASS GIS in JRC's JEODPP, [https://doi.org/10.1016/j.future.2017.11.007 A versatile data-intensive computing platform for information retrieval from big geospatial data]<br />
* [https://projects.ncsu.edu/hpc/Software/Software.php henry2 at NCSU] (Intel Xeon based Linux cluster; GRASS GIS 7.2.0 installed around 2017)<br />
* [https://wiki.ncsa.illinois.edu/pages/viewpage.action?pageId=47294247 ROGER, the CyberGIS supercomputer] at NCSA UIUC (batch compute nodes: 24x, 10 cores, 2.6 GHz, 256 GB RAM, 500 GB of local storage, cluster-wide General Parallel File System (GPFS) 4.5PB; GRASS GIS available alongside GDAL, PDAL, Geotools, and R)<br />
<br />
= Processing Practices =<br />
<br />
See page [[Parallel GRASS jobs]] for Cluster and Grid computing with parallelized code, Job scheduler, and GRASS on a cluster<br />
<br />
= See also =<br />
<br />
== Related wiki pages ==<br />
<br />
* https://grasswiki.osgeo.org/wiki/Parallel_GRASS_jobs<br />
* https://grasswiki.osgeo.org/wiki/Working_with_GRASS_without_starting_it_explicitly<br />
* https://grasswiki.osgeo.org/wiki/GRASS_and_Shell<br />
* https://grasswiki.osgeo.org/wiki/GRASS_GIS_Performance<br />
* https://grasswiki.osgeo.org/wiki/Large_raster_data_processing<br />
* https://grasswiki.osgeo.org/wiki/Large_vector_data_processing<br />
<br />
== Presentations ==<br />
<br />
* https://fosdem.org/2018/schedule/event/geo_grass/<br />
* https://archive.fosdem.org/2015/schedule/event/grass_7/<br />
* [http://gfzpublic.gfz-potsdam.de/pubman/item/escidoc:100071:1/component/escidoc:100070/5_GISDAY-2012_loewe_thaler_State_of_the_Cluster_bib.pdf%3Bjsessionid=87D8757B6257885C6 State of GIS at the High Performance Computing Cluster (2012)]<br />
<br />
== Publications ==<br />
* Alvioli, M., A. C. Mondini, F. Fiorucci, M. Cardinali & I. Marchesini (2018) Topography-driven satellite imagery analysis for landslide mapping, Geomatics, Natural Hazards and Risk, 9:1, 544-567, DOI: [https://doi.org/10.1080/19475705.2018.1458050 10.1080/19475705.2018.1458050] <br />
* Delucchi, L., Neteler, M. (2011): g.cloud module for GRASS GIS, FOSS4G 2011 Denver, Slides: https://www.slideshare.net/lucadelu/grass-cloud<br />
* Neteler, M. (2008): Building a cluster for GRASS GIS and other software from the OSGeo stack, https://courses.neteler.org/building-a-cluster-for-grass-gis-and-other-software-from-the-osgeo-stack/<br />
<br />
Upcoming in 2018:<br />
* [http://www.mdpi.com/si/15134 Special issue "High-Performance Computing in Geoscience and Remote Sensing"], Sensors (ISSN 1424-8220; CODEN: SENSC9)<br />
<br />
== Miscellaneous ==<br />
<br />
* [http://europa.eu/!qk37Tr The European High-Performance Computing Joint Undertaking - EuroHPC]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki:Terms_of_Service&diff=27384GRASS-Wiki:Terms of Service2024-02-13T11:00:17Z<p>Neteler: Login update: As of Feb 2024 we have connected this Wiki to the OSGeo authentication system</p>
<hr />
<div>== Want an account here? ==<br />
<br />
You are welcome!<br />
<br />
As of Feb 2024 we have connected this Wiki to the [https://www.osgeo.org/community/getting-started-osgeo/osgeo_userid/ OSGeo authentication system]. Please register there if you still need to, otherwise just use your OSGeo-ID (technically your OSGeo-LDAP account).<br />
<br />
== Legal Notices ==<br />
<br />
This is a community maintained site. The GRASS Development Team is not responsible for content.<br />
<br />
Debian is a registered trademark of Software In The Public Interest, Inc. FreeBSD is a registered trademark of Walnut Creek CDROM, Inc. HP-UX is a registered trademark of Hewlett-Packard Company. Irix is a registered trademark of Silicon Graphics, Inc. LinuxPPC is a trademark of Jeff Carr. Mac OS is a registered trademark of Apple Computer, Inc. NetBSD is a registered trademark of the NetBSD Foundation. Red Hat is a registered trademark of Red Hat, Inc. Linux is a registered trademark of Linus Torvalds. Slackware is a registered trademark of Patrick Volkerding. Solaris is a registered trademark of Sun Microsystems, Inc. SuSE is a registered trademark of SUSE LINUX Products GmbH, a Novell business Microsoft, Windows, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, Vista, Windows 7, and Windows 8 are registered trademarks of Microsoft, Inc.<br />
All other trademarks on this site are property of their respective owners.<br />
<br />
== PRIVACY Statement ==<br />
<br />
When you visit this site, we (osgeo.org) collect the following information:<br />
<br />
* your IP address;<br />
* time of your visit;<br />
* what pages you visit;<br />
* what type of operating system you are using;<br />
* what browser you are using.<br />
<br />
Aggregated visitor statistics is generated from that (e.g., how many people visited, etc.). See above links for the statistics. Please see www.sitemeter.com for their privacy statement. All of this information is not personally identifiable to you. This information will not be divulged, except in aggregate form, to any third parties under normal circumstances. For aggregated statistics, please visit above mentioned web sites.<br />
<br />
== Mailing list etiquette ==<br />
<br />
* [[Mailing list etiquette]]<br />
<br />
== Contact us ==<br />
<br />
* [https://grass.osgeo.org/about/community/ Contact us]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki&diff=27383GRASS-Wiki2024-02-13T10:59:52Z<p>Neteler: </p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|-<br />
| width="68%" style="vertical-align:top" |<br />
<div style="margin:0; margin-right:10px; border:1px solid #dfdfdf; background-color:#f8f8ff;"><br />
<br />
<div style="padding:0.3em 1em 0.7em 1em;"><br />
<br />
[[Image:grasslogo_vector_small.png|right|link=https://grass.osgeo.org]]<br />
<br />
=== Welcome to the GRASS GIS Users Wiki ===<br />
<br />
{{website|documentation/general-overview|'''GRASS GIS'''}} is a [http://en.wikipedia.org/wiki/Geographic_information_system Geographic Information System] used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.<br />
<br />
On this Wiki, you can get and contribute to GRASS related information, documents and community provided add-ons programs. In case you wish edit here, you need to register and login first (see top right link).<br />
<br />
For GRASS GIS at a glance, see [[core features]]. For usage examples, see the [https://grass.osgeo.org/learn/gallery/ screenshot gallery] and [[Applications]]. And also visit the [https://grass.osgeo.org main GRASS GIS website].<br />
<br />
<!-- broken since 2020<br />
Wiki read-only mirror (updated daily): http://grass.fsv.cvut.cz/wiki-mirror/<br />
--><br />
</div><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFE5E5;"><br />
'''What's hot:'''<br />
* '''Login update!''' As of Feb 2024 we have connected this Wiki to the [https://www.osgeo.org/community/getting-started-osgeo/osgeo_userid/ OSGeo authentication system]. Please register there if you still need to, otherwise just use your OSGeo-ID (technically your OSGeo-LDAP account).<br />
* <font size="+1">[https://github.com/OSGeo/grass/releases/tag/8.3.1 '''GRASS GIS 8.3.1''' is available!]</font> {{bullet}} [https://grass.osgeo.org/download/ download] {{bullet}} [https://github.com/OSGeo/grass/issues report any problems]<br />
<!-- <br />
* [https://trac.osgeo.org/grass/wiki/Grass8/NewFeatures80 List of features introduced in GRASS GIS 8.0.0] (included in 8.x)<br />
* [https://grass.osgeo.org/news/58/15/GRASS-GIS-6-4-6-released/ '''GRASS GIS 6.4.6''' is here!] {{bullet}} [https://grass.osgeo.org/download download]<br />
* Complete: [[GRASS SoC Ideas 2018|Google Summer of Code 2018]]: New [[GRASS_GSoC_2013_GRASS_GIS_Interactive_Scatter_Plot_Tool|scatterplot]] and [[GRASS_GSoC_2013_Temporal_GIS_Algebra_for_raster_and_vector_data_in_GRASS|temporal algebra]] tools --><br />
* Explore [https://grass.osgeo.org/learn/ learning resources at the main page].<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
==== User Documentation and Support ====<br />
* [[GRASS Help|GRASS Help and Getting Started]]<br />
* [[GRASS Documents|In depth GRASS Documentation]]<br />
* [[Installation Guide]] for precompiled binaries<br />
* '''[[Faq|FAQ]] - Frequently Asked Questions'''<br />
* [[Applications]] - use cases of GRASS in various disciplines<br />
* [[wxGUI]] - Graphical User Interface based on wxPython<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Community ====<br />
* [[GRASS Community]]: Getting in touch<br />
* [[Applications|Research applications]]: What people are doing with GRASS<br />
* [[GRASS migration hints|Migrating to GRASS]]<br />
* [[GRASS Blogger]]<br />
* Get involved: [[Project jobs]]<br />
* [https://grass.osgeo.org/wiki/Special:Recentchanges?feed=rss RSS feed] of recent changes of this Wiki<br />
</div><br />
<br />
<br />
<div>Have a look at the GRASS GIS users worldwide [https://grass.osgeo.org/community GRASS GIS User Online]. If you operate a GRASS GIS installation, you are welcome to enter your user data there. <br />
</div><br />
<br />
<div><p>''[[GRASS-Wiki:Language policy|Translate this Wiki]]''</p></div><br />
<br />
<!-- RIGHT COLUMN --><br />
| width="38%" style="vertical-align:top" |<br />
<div style="margin:0; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:osgeo_logo.png|center|220px|link=http://www.osgeo.org]]<br />
<center>[http://www.osgeo.org OSGeo] Foundation Project</center><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:1em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:Btn_donate_SM.gif|center|link=https://grass.osgeo.org/donations/]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#f8f8ff;"><br />
* [https://grass.osgeo.org/screenshots GRASS Screenshots]<br />
* [https://github.com/OSGeo/grass/ GitHub] Source Code Repository<br />
* [https://grass.osgeo.org/support/mailing-lists Mailing lists] and [[IRC]]<br />
* [https://github.com/OSGeo/grass/issues Report errors or wishes]<br />
* [https://github.com/OSGeo/grass/blob/main/COPYING Licensed under GNU GPL]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Download ====<br />
* [https://grass.osgeo.org/download Source code and binaries]<br />
* '''[[AddOns]]'''<br />
* [[Promotional material]]<br />
* [[Sample datasets]]<br />
* [[Global datasets]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Development ====<br />
* [[Compile and Install]] of Source Code<br />
* [[Development|GRASS Development]] intro<br />
* [http://trac.osgeo.org/grass/wiki GRASS-trac]: the development Wiki, bugtracker, source code browser<br />
* [[Release Roadmap]]<br />
* [[GRASS 7 ideas collection]]<br />
* [[GRASS SoC Ideas|Google Summer of Code ideas collection]]<br />
* [http://trac.osgeo.org/grass/wiki/HowToContribute How to contribute to GRASS development] (getting write access and such)<br />
</div><br />
<br />
<!--<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
Project Metrics provided by [https://www.openhub.net/p/grass_gis Ohloh].<br />
<br />
{{#widget:Ohloh Project|id=3666|type=partner_badge}}<br />
</div><br />
--><br />
|}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki&diff=27382GRASS-Wiki2024-02-13T10:59:33Z<p>Neteler: Login update: As of Feb 2023 we have connected this Wiki to the OSGeo authentication system</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|-<br />
| width="68%" style="vertical-align:top" |<br />
<div style="margin:0; margin-right:10px; border:1px solid #dfdfdf; background-color:#f8f8ff;"><br />
<br />
<div style="padding:0.3em 1em 0.7em 1em;"><br />
<br />
[[Image:grasslogo_vector_small.png|right|link=https://grass.osgeo.org]]<br />
<br />
=== Welcome to the GRASS GIS Users Wiki ===<br />
<br />
{{website|documentation/general-overview|'''GRASS GIS'''}} is a [http://en.wikipedia.org/wiki/Geographic_information_system Geographic Information System] used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.<br />
<br />
On this Wiki, you can get and contribute to GRASS related information, documents and community provided add-ons programs. In case you wish edit here, you need to register and login first (see top right link).<br />
<br />
For GRASS GIS at a glance, see [[core features]]. For usage examples, see the [https://grass.osgeo.org/learn/gallery/ screenshot gallery] and [[Applications]]. And also visit the [https://grass.osgeo.org main GRASS GIS website].<br />
<br />
<!-- broken since 2020<br />
Wiki read-only mirror (updated daily): http://grass.fsv.cvut.cz/wiki-mirror/<br />
--><br />
</div><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFE5E5;"><br />
'''What's hot:'''<br />
* '''Login update!''' As of Feb 2023 we have connected this Wiki to the [https://www.osgeo.org/community/getting-started-osgeo/osgeo_userid/ OSGeo authentication system]. Please register there if you still need to, otherwise just use your OSGeo-ID (technically your OSGeo-LDAP account).<br />
* <font size="+1">[https://github.com/OSGeo/grass/releases/tag/8.3.1 '''GRASS GIS 8.3.1''' is available!]</font> {{bullet}} [https://grass.osgeo.org/download/ download] {{bullet}} [https://github.com/OSGeo/grass/issues report any problems]<br />
<!-- <br />
* [https://trac.osgeo.org/grass/wiki/Grass8/NewFeatures80 List of features introduced in GRASS GIS 8.0.0] (included in 8.x)<br />
* [https://grass.osgeo.org/news/58/15/GRASS-GIS-6-4-6-released/ '''GRASS GIS 6.4.6''' is here!] {{bullet}} [https://grass.osgeo.org/download download]<br />
* Complete: [[GRASS SoC Ideas 2018|Google Summer of Code 2018]]: New [[GRASS_GSoC_2013_GRASS_GIS_Interactive_Scatter_Plot_Tool|scatterplot]] and [[GRASS_GSoC_2013_Temporal_GIS_Algebra_for_raster_and_vector_data_in_GRASS|temporal algebra]] tools --><br />
* Explore [https://grass.osgeo.org/learn/ learning resources at the main page].<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
==== User Documentation and Support ====<br />
* [[GRASS Help|GRASS Help and Getting Started]]<br />
* [[GRASS Documents|In depth GRASS Documentation]]<br />
* [[Installation Guide]] for precompiled binaries<br />
* '''[[Faq|FAQ]] - Frequently Asked Questions'''<br />
* [[Applications]] - use cases of GRASS in various disciplines<br />
* [[wxGUI]] - Graphical User Interface based on wxPython<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Community ====<br />
* [[GRASS Community]]: Getting in touch<br />
* [[Applications|Research applications]]: What people are doing with GRASS<br />
* [[GRASS migration hints|Migrating to GRASS]]<br />
* [[GRASS Blogger]]<br />
* Get involved: [[Project jobs]]<br />
* [https://grass.osgeo.org/wiki/Special:Recentchanges?feed=rss RSS feed] of recent changes of this Wiki<br />
</div><br />
<br />
<br />
<div>Have a look at the GRASS GIS users worldwide [https://grass.osgeo.org/community GRASS GIS User Online]. If you operate a GRASS GIS installation, you are welcome to enter your user data there. <br />
</div><br />
<br />
<div><p>''[[GRASS-Wiki:Language policy|Translate this Wiki]]''</p></div><br />
<br />
<!-- RIGHT COLUMN --><br />
| width="38%" style="vertical-align:top" |<br />
<div style="margin:0; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:osgeo_logo.png|center|220px|link=http://www.osgeo.org]]<br />
<center>[http://www.osgeo.org OSGeo] Foundation Project</center><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:1em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:Btn_donate_SM.gif|center|link=https://grass.osgeo.org/donations/]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#f8f8ff;"><br />
* [https://grass.osgeo.org/screenshots GRASS Screenshots]<br />
* [https://github.com/OSGeo/grass/ GitHub] Source Code Repository<br />
* [https://grass.osgeo.org/support/mailing-lists Mailing lists] and [[IRC]]<br />
* [https://github.com/OSGeo/grass/issues Report errors or wishes]<br />
* [https://github.com/OSGeo/grass/blob/main/COPYING Licensed under GNU GPL]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Download ====<br />
* [https://grass.osgeo.org/download Source code and binaries]<br />
* '''[[AddOns]]'''<br />
* [[Promotional material]]<br />
* [[Sample datasets]]<br />
* [[Global datasets]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Development ====<br />
* [[Compile and Install]] of Source Code<br />
* [[Development|GRASS Development]] intro<br />
* [http://trac.osgeo.org/grass/wiki GRASS-trac]: the development Wiki, bugtracker, source code browser<br />
* [[Release Roadmap]]<br />
* [[GRASS 7 ideas collection]]<br />
* [[GRASS SoC Ideas|Google Summer of Code ideas collection]]<br />
* [http://trac.osgeo.org/grass/wiki/HowToContribute How to contribute to GRASS development] (getting write access and such)<br />
</div><br />
<br />
<!--<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
Project Metrics provided by [https://www.openhub.net/p/grass_gis Ohloh].<br />
<br />
{{#widget:Ohloh Project|id=3666|type=partner_badge}}<br />
</div><br />
--><br />
|}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_Community&diff=27381GRASS Community2024-02-12T17:59:28Z<p>Neteler: fix URL</p>
<hr />
<div>__TOC__<br />
<br />
== About the project ==<br />
<br />
=== Freedom ===<br />
<br />
The GRASS GIS project is developed under the terms of the [http://www.gnu.org/copyleft/gpl.html GNU General Public License] (the GPL) [http://grass.osgeo.org/devel/index.php in the open] by [http://grass.osgeo.org/community/index.php volunteers] the [http://mapserver.gdf-hannover.de/grassusers/map.phtml world over].<br />
<br />
GRASS differs from many other GIS software packages used in the professional world in that it is developed and distributed by users for users; mostly on a volunteer basis, in the open, and is given away for free.<br />
<br />
Emphasis is placed on interoperability and unlimited access to data as well as software flexibility and evolution rate - both added features and bug minimization. <br />
<br />
* [[Gis_Concepts#How_the_Open_Source_software_development_model_works|How the Open Source software development model works]]<br />
<br />
* [http://en.wikipedia.org/wiki/Gpl WikiPedia entry discussing the GPL]<br />
<br />
=== The GRASS Community and the Development Team ===<br />
<br />
* [https://grass.osgeo.org/support/community/ The Community]<br />
* [https://grass.osgeo.org/development/ The Development Team]<br />
* [[GRASS_Translation_Team|The Translation Team]]<br />
* [https://trac.osgeo.org/grass/wiki/PSC The GRASS Project Steering Committee]<br />
<br />
=== Open Source Geospatial Foundation (OSGeo) ===<br />
* [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo.org) was established in Chicago in 2006. GRASS GIS is a founding project.<br />
** Historical document: [[Potential tasks and responsibilities]] (earlier proposal)<br />
** Historical document: [[GRASS Project Incubation]] at the OSGeo Foundation<br />
<br />
== Getting Help ==<br />
<br />
=== Mailing lists ===<br />
<br />
* The primary point of contact for GRASS GIS user help and development coordination is on the [https://grass.osgeo.org/support/mailing-lists/ mailing lists]. The answers to many questions you may have will probably already have been addressed and will be waiting for you in the [https://grass.osgeo.org/support/mailing-lists/ mailing lists archives].<br />
* Because the mailing lists are so critical to the project's success, and support comes entirely from time-strapped volunteers and colleagues, we request some [[mailing list etiquette]] be followed.<br />
<br />
=== IRC communication ===<br />
<br />
IRC is live Internet Relay Chat. The GRASS project maintains a "chatroom" as well and if you are lucky there may be someone logged on who can give you a quick answer.<br />
<br />
* [[How to participate in IRC communication]] (#grass, #osgeo, #gdal, #qgis, #mapserver and other channels)<br />
<br />
=== Documentation ===<br />
<br />
* You've already discovered the wiki. Go forth and explore!<br />
* Check out the [https://grass.osgeo.org/documentation/ GRASS Documentation Project]<br />
<br />
=== Programming support ===<br />
<br />
* See the [[Support]] page<br />
<br />
== Community resources ==<br />
<br />
=== GRASS education (Free GIS education) ===<br />
<br />
The GRASS education (Free GIS education) wiki site offers a start to collect links, text documents and small images. Furthermore it provides a discussion platform to develop and collect approaches, techniques, exercises and course structures for people giving GRASS and/or other Free GIS courses.<br />
<br />
* [[GRASS_Education_(Free_GIS_education) | GRASS education (Free GIS education)]]<br />
<br />
=== Promoting GRASS GIS ===<br />
<br />
* [[GRASS promotion team]]<br />
* [[Promotional material]]<br />
* [[GRASS migration hints]]<br />
* [[GRASS Propaganda]]<br />
* [[GRASS virtual exhibition]]<br />
<br />
=== Conferences ===<br />
* See [http://wiki.osgeo.org/wiki/Open_Source_GIS_History Open Source GIS History]<br />
* [[:Category:Workshops|GRASS GIS related workshops and presentations]]<br />
<br />
=== Seminars and Courses ===<br />
* Refer to your preferred Web search engine<br />
<br />
=== GRASS GIS Addon modules ===<br />
<br />
* [https://grass.osgeo.org/grass-stable/manuals/addons/ GRASS GIS AddOns] - software contributed by the community<br />
<br />
== Project statistics ==<br />
<br />
* Openhub software statistics<br />
** Summary of commits: https://www.openhub.net/p/grass_gis/commits/summary (note that GRASS GIS is 20 years older than what Openhub covers :-)<br />
** Lines of Code (5/2016): 1,776,809<br />
** Currently (5/2016) 19 active core developers and many Addons developers<br />
** Commits by top contributors: https://www.openhub.net/p/grass_gis/contributors/summary<br />
** Factoids via OSGeo-Live Project Metrics: http://live.osgeo.org/en/metrics.html (all OSGeo projects)<br />
* OSGeo community statistics:<br />
** https://wiki.osgeo.org/wiki/VisibilityStats<br />
* [[:Special:Statistics|GRASS GIS Wiki statistics]]<br />
* Mailing list subscribers (5/2016):<br />
** grass-user: 1060<br />
** grass-announce: 377<br />
** grass-dev: 332<br />
** Probably one of the longest existing mailing list archives in the Internet: since 1991, see https://lists.osgeo.org/pipermail/grass-dev/ and https://lists.osgeo.org/pipermail/grass-user/<br />
* Software under development since 1982, nowadays automated quality control with Travis CI etc<br />
<br />
<br />
[[Category: Community]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki:Terms_of_Service&diff=27380GRASS-Wiki:Terms of Service2024-02-12T17:29:16Z<p>Neteler: New authentication method enabled! Use the OSGeo-ID (i.e., technically your OSGeo-LDAP account)</p>
<hr />
<div>== Want an account here? ==<br />
<br />
You are welcome!<br />
<br />
As of Feb 2023 we have connected this Wiki to the [https://www.osgeo.org/community/getting-started-osgeo/osgeo_userid/ OSGeo authentication system]. Please register there if you still need to, otherwise just use your OSGeo-ID (technically your OSGeo-LDAP account).<br />
<br />
== Legal Notices ==<br />
<br />
This is a community maintained site. The GRASS Development Team is not responsible for content.<br />
<br />
Debian is a registered trademark of Software In The Public Interest, Inc. FreeBSD is a registered trademark of Walnut Creek CDROM, Inc. HP-UX is a registered trademark of Hewlett-Packard Company. Irix is a registered trademark of Silicon Graphics, Inc. LinuxPPC is a trademark of Jeff Carr. Mac OS is a registered trademark of Apple Computer, Inc. NetBSD is a registered trademark of the NetBSD Foundation. Red Hat is a registered trademark of Red Hat, Inc. Linux is a registered trademark of Linus Torvalds. Slackware is a registered trademark of Patrick Volkerding. Solaris is a registered trademark of Sun Microsystems, Inc. SuSE is a registered trademark of SUSE LINUX Products GmbH, a Novell business Microsoft, Windows, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, Vista, Windows 7, and Windows 8 are registered trademarks of Microsoft, Inc.<br />
All other trademarks on this site are property of their respective owners.<br />
<br />
== PRIVACY Statement ==<br />
<br />
When you visit this site, we (osgeo.org) collect the following information:<br />
<br />
* your IP address;<br />
* time of your visit;<br />
* what pages you visit;<br />
* what type of operating system you are using;<br />
* what browser you are using.<br />
<br />
Aggregated visitor statistics is generated from that (e.g., how many people visited, etc.). See above links for the statistics. Please see www.sitemeter.com for their privacy statement. All of this information is not personally identifiable to you. This information will not be divulged, except in aggregate form, to any third parties under normal circumstances. For aggregated statistics, please visit above mentioned web sites.<br />
<br />
== Mailing list etiquette ==<br />
<br />
* [[Mailing list etiquette]]<br />
<br />
== Contact us ==<br />
<br />
* [https://grass.osgeo.org/about/community/ Contact us]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=User:Neteler&diff=27379User:Neteler2024-02-12T17:00:34Z<p>Neteler: re-wording</p>
<hr />
<div>== Markus Neteler ==<br />
<br />
GRASS GIS [[Team]]<br />
<br />
* my OSGeo wiki user page: https://wiki.osgeo.org/wiki/Markus_Neteler<br />
* work: https://www.mundialis.de/<br />
* consultancy offer, scientific work and courses: https://neteler.org/<br />
* GRASS GIS book: https://grassbook.org/</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki:Bureaucrats&diff=27378GRASS-Wiki:Bureaucrats2024-02-12T09:03:26Z<p>Neteler: Created page with "The group of GRASS GIS bureaucrats."</p>
<hr />
<div>The group of GRASS GIS bureaucrats.</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Category:Citations&diff=27373Category:Citations2024-02-05T08:48:45Z<p>Neteler: Created page with "Please cite GRASS when using the software in your work."</p>
<hr />
<div>Please cite GRASS when using the software in your work.</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_Citation_Repository&diff=27372GRASS Citation Repository2024-02-05T08:48:01Z<p>Neteler: add Zenodo DOI</p>
<hr />
<div>== How to cite GRASS GIS ==<br />
<br />
Please cite GRASS when using the software in your work. Here are some choices depending on the version used and the type of citation:<br />
<br />
* GRASS GIS Manual citations,<br />
* Peer reviewed general GRASS GIS articles,<br />
* Books,<br />
* Topic oriented citations.<br />
<br />
Please select below:<br />
<br />
=== GRASS GIS Manual citations ===<br />
<br />
DOI (for all versions, shows latest release on top): [https://doi.org/10.5281/zenodo.5176030 10.5281/zenodo.5176030]<br />
<br />
<br />
Software:<br />
* GRASS Development Team, 2022. Geographic Resources Analysis Support System (GRASS) Software, Version 8.2. Open Source Geospatial Foundation. Electronic document: https://grass.osgeo.org, DOI: [https://doi.org/10.5281/zenodo.5176030 10.5281/zenodo.5176030]<br />
* GRASS Development Team, 2017. Geographic Resources Analysis Support System (GRASS) Software, Version 7.2. Open Source Geospatial Foundation. Electronic document: https://grass.osgeo.org, DOI: [https://doi.org/10.5281/zenodo.5176030 10.5281/zenodo.5176030]<br />
* GRASS Development Team, 2016. Geographic Resources Analysis Support System (GRASS) Software, Version 7.0. Open Source Geospatial Foundation. Electronic document: https://grass.osgeo.org, DOI: [https://doi.org/10.5281/zenodo.5176030 10.5281/zenodo.5176030]<br />
* GRASS Development Team, 2015. Geographic Resources Analysis Support System (GRASS) Software, Version 6.4. Open Source Geospatial Foundation. Electronic document: https://grass.osgeo.org, DOI: [https://doi.org/10.5281/zenodo.5176030 10.5281/zenodo.5176030]<br />
<br />
Programmer's manual:<br />
* GRASS Development Team, 2024. Geographic Resources Analysis Support System (GRASS 8) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: https://grass.osgeo.org/programming8/<br />
* GRASS Development Team, 2017. Geographic Resources Analysis Support System (GRASS 7) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: https://grass.osgeo.org/programming7/<br />
* GRASS Development Team, 2015. Geographic Resources Analysis Support System (GRASS 6) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: https://grass.osgeo.org/programming6/<br />
<br />
Related BibTeX entry:<br />
<pre><br />
@Manual{GRASS_GIS_software,<br />
title = {Geographic Resources Analysis Support System (GRASS GIS) Software, Version 8.2},<br />
author = {{GRASS Development Team}},<br />
organization = {Open Source Geospatial Foundation},<br />
year = {2022},<br />
url = {https://grass.osgeo.org},<br />
doi = {https://doi.org/10.5281/zenodo.5176030}<br />
}<br />
</pre><br />
<br />
=== Historical manual pages ===<br />
(Search US Army documents at https://discover.dtic.mil/products-services/)<br />
<br />
* Predicting Database Requirements for Geographic Information Systems in the Year 2000: Long-Term Design Issues for GRASS (1992): https://apps.dtic.mil/sti/pdfs/ADA256862.pdf<br />
* Geographic Resources Analysis Support System (GRASS) Version 4.0 User's Reference Manual (1992): https://apps.dtic.mil/sti/tr/pdf/ADA255218.pdf<br />
* GRASS/GIS Implementation Guide (1989): https://apps.dtic.mil/sti/tr/pdf/ADA214623.pdf<br />
* r.mapcalc: An Algebra for GIS and Image Processing (1984): https://apps.dtic.mil/sti/pdfs/ADA283923.pdf<br />
* FORT HOOD GEOGRAPHIC INFORMATION SYSTEM: PILOT SYSTEM DEVELOPMENT AND USER INSTRUCTIONS (1983): https://apps.dtic.mil/sti/pdfs/ADA130618.pdf<br />
<br />
=== GRASS GIS Addon Manual citations ===<br />
<br />
Hint: when citing addons, you can simply use "grass-stable" in the URL which is auto-expanded to the latest version (e.g. grass82/). Like this the latest addon version is found.<br />
<br />
Example:<br />
* M. Lennert and GRASS Development Team, 2017: “Addon i.segment.stats. Geographic resources analysis support system (GRASS) software, version 7.2”, https://grass.osgeo.org/grass7/manuals/addons/i.segment.stats.html (1 June 2017)<br />
<br />
=== Peer reviewed general GRASS GIS articles ===<br />
<br />
* Neteler, M., Bowman, M.H., Landa, M., Metz, M., 2012. <i>GRASS GIS: A multi-purpose open source GIS</i>. Environ Model Soft 31, 124–130. ([https://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [https://web.archive.org/web/20120424040115/https://gis.cri.fmach.it/uploads/neteler_grass_env_model_software.pdf PDF])<br />
* Neteler, M., Bowman, M.H., Landa, M., Metz, M. (2012) "GRASS GIS: A multi-purpose open source GIS." Environmental Modelling & Software. Vol 31, pp. 124–130. ([https://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [https://web.archive.org/web/20120424040115/https://gis.cri.fmach.it/uploads/neteler_grass_env_model_software.pdf PDF])<br />
<br />
Related Bibtex entry:<br />
<pre><br />
@article{neteler2012grass,<br />
title={{GRASS GIS: a multi-purpose Open Source GIS}},<br />
author={Neteler, M. and Bowman, M.H. and Landa, M. and Metz, M.},<br />
journal={Environmental Modelling \& Software},<br />
year={2012},<br />
volume = {31},<br />
pages = {124--130},<br />
publisher={Elsevier},<br />
doi = "10.1016/j.envsoft.2011.11.014"<br />
}<br />
</pre><br />
<br />
=== Books ===<br />
* See https://grass.osgeo.org/learn/books/<br />
<br />
=== Topic oriented citations ===<br />
* see [[Citations for specific modules]]<br />
* Citations of [[GRASS in the wild]] (add your publications here)<br />
<br />
=== Historic citations ===<br />
<br />
<font color="grey"><br />
* GRASS Development Team, 2021. GRASS GIS 7 Programmer's Manual. Open Source Geospatial Foundation, USA. Electronic document: https://grass.osgeo.org/programming7/<br />
* GRASS Development Team, 2016. GRASS 6 Programmer's Manual. Open Source Geospatial Foundation, USA. Electronic document: https://grass.osgeo.org/programming6/<br />
* GRASS Development Team, 2012. GRASS 6.4 Users Manual. Open Source Geospatial Foundation, USA. Electronic document: https://grass.osgeo.org/grass64/manuals/<br />
* GRASS Development Team, 2007. GRASS 6.2 Users Manual. ITC-irst, Trento, Italy. Electronic document: https://grass.osgeo.org/grass62/manuals/<br />
* GRASS Development Team, 2002. GRASS 5.0 Users Manual. ITC-irst, Trento, Italy. Electronic document: https://grass.osgeo.org/grass57/manuals/html57_user/<br />
* U.S. Army CERL, 1993. GRASS 4.1 Reference Manual. U.S. Army Corps of Engineers, Construction Engineering Research Laboratories, Champaign, Illinois, 1-425.<br />
* Westervelt, J.D., Shapiro, M., Goran, W.D., Gerdes, D.P. (1992). Geographic Resources Analysis Support System (GRASS) Version 4.0 User's Reference Manual (No. CERL-ADP-N-87/22). CONSTRUCTION ENGINEERING RESEARCH LAB (ARMY) CHAMPAIGN IL. (PDF: https://apps.dtic.mil/sti/pdfs/ADA255218.pdf)<br />
* Shapiro, M., Westervelt, J., Gerdes, D., Higgins, M., & Larson, M. (1989). GRASS 3.0 programmer's manual (No. CERL-ADP-N-89/14). CONSTRUCTION ENGINEERING RESEARCH LAB (ARMY) CHAMPAIGN IL. (PDF: https://apps.dtic.mil/sti/pdfs/ADA252461.pdf)<br />
* ''Missing: Manuals of GRASS 1.0 and 2.0 - please submit to us!''<br />
</font><br />
<br />
* Newsletter citations<br />
** GRASSHopper CERL, https://grass.osgeo.org/about/history/<br />
** [[Newsletter citations Vol1]] 2004<br />
** [[Newsletter citations Vol2]] 2005<br />
** [[Newsletter citations Vol3]] 2005<br />
** [[Newsletter citations Vol4]] 2006<br />
<br />
== Helpful tools and GRASS related bibliographic searches ==<br />
* [https://grass.osgeo.org/grass-stable/manuals/addons/g.citation.html g.citation add-on module]<br />
* Google Scholar:<br />
** [https://scholar.google.com/scholar?q=GRASS+GIS Search for "GRASS GIS"] (activate BibTex export in "Scholar preferences")<br />
** The virtual [https://scholar.google.com/citations?user=gJ0ZB0cAAAAJ GRASS Development Team] - GRASS GIS related papers<br />
* [https://www.citeulike.org CiteULike] - [https://www.citeulike.org/tag/grass Search for "GRASS"]<br />
* [https://www.scripps.edu/~cdputnam/software/bibutils/ Bibutils] bibliography conversion utilities<br />
* [https://gbib.seul.org Gbib BibTeX editor] for GTK+Gnome<br />
* [https://jabref.sourceforge.net/ JabRef] Multi-platform, multi-format bibliography tool<br />
* [https://www.zotero.org/groups/gis Zotero citation manager GIS group] - with all known GRASS GIS and other GIS related references<br />
<br />
[[Category:Citations]]<br />
[[Category:Documentation]]<br />
[[Category:FAQ]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GitHub-Zenodo_linkage&diff=27371GitHub-Zenodo linkage2024-02-05T08:45:18Z<p>Neteler: add Zenodo DOI</p>
<hr />
<div>= GitHub - Zenodo Integration for GRASS GIS =<br />
<br />
== Scope ==<br />
This wiki-page provides information about the linkage between the GRASS GIS repository on GitHub and the data archive Zenodo. This includes the motivation why this is relevant for the GRASS GIS community, hands on advice from the Zenodo helpdesk how to do the task and strategic information about future development paths, as this is partially work in progress (scientific grade automated software citation by persistent identifiers).<br />
<br />
== Introducing Zenodo ==<br />
<br />
[https://www.zenodo.org/ Zenodo] is a general-purpose open-access repository for scientific information. It is developed under the European [https://en.wikipedia.org/wiki/Framework_Programmes_for_Research_and_Technological_Development#OpenAIRE OpenAIRE] program (a network of Open Access repositories, archives and journals that support Open Access policies) and operated by [https://en.wikipedia.org/wiki/CERN CERN].<br />
The services provided by Zenodo are based on an Open Source software stack. To users, including the GRASS GIS developer team, Zenodo provides long term archiving of digital content, including software. Every user can uplaod up to 50Gb of digital scientific content.<br />
<br />
* [http://about.zenodo.org/policies/ Zenodo policies]<br />
* [http://about.zenodo.org/terms/ Zenodo terms of use]<br />
* [https://doi.org/10.5281/zenodo.1327310 Zenodo Documentation: Software Deposit - Guidance for Researchers]<br />
* [https://blog.zenodo.org/2019/01/10/2019-01-10-asclepias/ Software citations now available in Zenodo]<br />
<br />
== Benefits for the GRASS GIS community ==<br />
=== Long term archiving ===<br />
Zenodo stores the archived data (GRASS GIS codebase)in the CERN Data Center. Both data files and metadata are kept in multiple online and independent replicas. CERN has considerable knowledge and experience in building and operating large scale digital repositories and a commitment to maintain this data centre to collect and store 100s of PBs of LHC data as it grows over the next 20 years. In the highly unlikely event that Zenodo will have to close operations, it is guaranteed that all content will be migrated to other suitable repositories, and since all uploads have DOIs, all citations and links to Zenodo resources (GRASS GIS codebase) will not be affected. (Source: [https://help.zenodo.org/ Zenodo FAQ])<br />
<br />
=== Scientific citation by DOI ===<br />
Currently, the GRASS GIS web presence (only) recommends citation by [http://BibTeX BibTeX]<br />
<br />
All content archived in Zenodo receives a persistent identifier, a [https://en.wikipedia.org/wiki/Digital_object_identifier DOI (Digital Object Identifier)]. DOI can be used through webbrowsers. Unlike an URL (-> 404 error) they can by design never expire. The technical infrastructure for this is provided by the [https://en.wikipedia.org/wiki/DataCite DataCite] non-profit organisation. <br />
DOI are cited in scientific literature similar to ISBN or ISSN numbers.<br />
<br />
A DOI-link resolves to a so called "landing page", a html page with metadata information (both human and machine readable) and a link to the archived digital content (e.g. the GRASS GIS codebase stored in Zenodo).<br />
<br />
The "Zenodo page" for the GRASS GIS codebase is its DOI landing page.<br />
<br />
Zenodo provides a service to render citation strings based on the landing page metadata in several hundreds of formatting styles, including Research Information Systems (RIS).<br />
<br />
The GRASS GIS codebase has one "umbrella" DOI minted for it by Zenodo. This DOI is incremented for each GRASS GIS release by [https://blog.zenodo.org/2017/05/30/doi-versioning-launched/ DOI versioning]. This allows to cite both the GRASS GIS codebase in general (-> "umbrella DOI") and particular releases (by its DOI version).<br />
<br />
=== Usage statistics ===<br />
* http://blog.zenodo.org/2018/07/18/2018-07-18-usage-statistics/<br />
<br />
== GitHub - Zenodo Integration ==<br />
=== Generic Documentation ===<br />
* [https://guides.github.com/activities/citable-code/ GitHub Guide: Making Your Code Citable]<br />
* [https://genr.eu/wp/cite/ GenR-Blogpost: Make Your Code Citable Using GitHub and Zenodo: A How-to Guide]<br />
<br />
=== GRASS GIS specific information ===<br />
<br />
The following feedback was provided by the Zenodo helpdesk in Q1/Q2 2019 in advance of the GRASS github migration:<br />
<br />
==== Many DOI for individual GRASS modules or rather a DOI for the GRASS GIS software framework ? ====<br />
''"Yes, in principle it's possible to issue DOIs for all modules, but I'm I don't think this is useful. You mention e.g. that it would be nice to cite both the overall system as well as individual modules. This will essentially "dilute" the citations over many DOIs and thus the citation count for GRASS will seem a lot lower than it actually is. Thus for getting credit, it's better to have one DOI per major version of the grass (where each version can have an updated author list). Also, having many DOIs makes it very difficult for discovery systems to track the citations automatically. Essentially Zenodo is the first system, where we can actually aggregate citations for all versions and a specific version of software."'' <br />
<br />
''"If you want to give credit to individual modules, I think it's better to then simply mention it. For instance, the journal text could mention it used module X, and the landing page of DOI for GRASS, could simply have a description detailing who did which module."''<br />
<br />
''"We have now collected some 5000 citations to software in Zenodo, and what we can see for the top cited packages is that if the project provides a "citation recommendation" then people actually follow it. Example:"''<br />
<br />
* ''https://github.com/Lasagne/Lasagne/wiki/Lasagne-Citation-(BibTeX)''<br />
<br />
* ''https://zenodo.org/record/27878'' "<br />
<br />
==== How to integrate previous releases of GRASS GIS into Zenodo ====<br />
<br />
'''Q:''' ''If possible, all GRASS releases should be made available for scientific citation via Zenodo (overview over all releases here: <br />
* ''https://grass.osgeo.org/home/history/releases/'' <br />
* ''https://trac.osgeo.org/grass/wiki/Release ).'' <br />
''The oldest GRASS release, which has been preserved as a tarball predates software versioning (GRASS 4.3. from 1999) All later releases are currently available in the current SVN repo ( https://trac.osgeo.org/grass/browser/grass/#branches)''<br />
<br />
''So to be able to get a DOI for each major version of GRASS, as advised in your previous response, can you please recommend an approach how to feed the sequence of previous major GRASS releases via GitHub into Zenodo, so the DOI for the releases are in the proper sequence (DOI for GRASS 5.X referencing to the newer releases of GRASS6.x, 7.x, etc.) ? <br />
"''<br />
<br />
'''Answer:''' ''If you want to keep the history of releases in order, I would suggest you upload them in order of the release date (starting with the oldest one). Nevertheless, please notice that Zenodo sorts the releases by upload date and not by a version number. This means that any future release (e.g. minor versions of previous releases) will be simply the next one in the list by DateTime.... I hope I manage to explain it :) ''<br />
<br />
==== What happens if we screw this up ? ====<br />
<br />
'''Answer:''' ''First, in case you make a mistake, we do have the possibility to reorder the releases manually. Naturally we would like to avoid this, however just rest assured that we can fix it if you make a mistake.<br />
''<br />
''If you want to use our GitHub integration, then you must move the source code to GitHub and activate the repository in Zenodo (see the GitHub guide). Afterwards, you make a new release in GitHub for each of your releases (see also the GitHub guide). You have to make the releases in the order you want them to appear in Zenodo. '''If you have tags push to GitHub, then you can upgrade a tag to a release in the GitHub interface''' ''.<br />
<br />
== Necessary steps to set up GitHub-Zenodo integration for GRASS GIS (according to https://guides.github.com/activities/citable-code/)==<br />
<br />
Last update: 2019<br />
<br />
# DONE {{done}}: Create a function address (email) for the Zenodo account ('''zenodo-grass-legacy@osgeo.org''': forwards to Markus Neteler and Peter Löwe )<br />
# Log into [https://www.zenodo.org/ Zenodo account] (Login button) using the credentials of the GitHub account of the GRASS Developer team ('''Log in''' button at the top right of the Zenodo page). <br />
# Zenodo will redirect you back to GitHub to ask for your permission to share your email address ('''zenodo-grass-legacy@osgeo.org''') and the ability to configure webhooks on your repository (https://github.com/OSGeo/grass-legacy). Go ahead and click '''Authorize application''' to give Zenodo the permissions it needs. '''Important!''' We need to archive a repository that belongs to the GRASS project (which is considered an ''organization'') on GitHub: Make sure that the organization administrator has enabled '''third-party access''' to the Zenodo application.<br />
# At this point, you’ve authorized Zenodo to configure the repository webhooks needed to allow for archiving and DOI-issuing. To enable this functionality, simply click the '''On''' toggle button next to the GRASS repository.<br />
#Check repository settings: By enabling archiving in Zenodo, you have set up a new webhook on your repository. Click the '''settings tab''' on your repository, and then '''click ‘Webhooks’ in the left-hand menu'''. <br />
# Unless you’ve created releases (we have) for this repository before, you will be asked to Create a new release. <br />
# (is this applicable for GRASS ?) If this is the first release of your code (not the case for GRASS) then you should give it a version number of v1.0.0. Fill in any release notes and click the '''Publish release''' button.<br />
#Checking everything has worked: Creating a new release will trigger Zenodo into archiving your repository. You can confirm that this process took place by click the '''Upload tab''' in your '''Zenodo profile'''. You should see a new upload in the right-hand panel.<br />
# Minting a DOI: Before Zenodo can issue a DOI for your repository, you will need to provide some information about the GitHub repo that you’ve just archived. Once you’re happy with the description of your software, click the '''Publish''' button at the bottom of the Zenodo form, and voilà, you’ve just made a new DOI for your GitHub repository!<br />
# Back on your Zenodo GitHub page you should now see your repository listed with a shiny new badge showing your new DOI!<br />
# ProTip: If you really want to show off, then right click on the gray and blue DOI image and copy the URL and place it in your README on your GitHub repo.<br />
# Mint DOI versions for all existing GRASS releases which have been tagged within GitHub into Zenodo. This has to be done in the right sequence (oldest release first, latest release last)<br />
<br />
== Loose ends and options for future extensions ==<br />
* Integration of ORCID IDs for human persons. The concepts and workflows of DOI and ORCID are interlinked. If a DOI is minted which includes one or many ORCIDs of the content owners, the DOI will be automagicaly referenced in the ORCID profiles of these persons. <br />
* Fine-grained citation of individual GRASS modules is provided by the GRASS GIS [https://grass.osgeo.org/grass76/manuals/addons/g.citation.html add-on module g.citation]. The citation strings are generated from the man page of the module(s) to be cited. Since GRASS GIS module man pages are currently only referenced by URL, not DOI. Therefore all citation strings are based on URLs. Once a best practice has been identified to cite a specific GRASS module based on the Zenodo DOI of the GRASS GIS release, g.citation should be extended to include this capability. This would allow DOI-based citation of individual GRASS modules. The issue of adequate authorship information (DOI-for-a-GRASS-release: GRASS Developer Team, GRASS module: A number [1..n] of persons) needs to be discussed in this context. <br />
* In scientific citations of the GRASS GIS project, the due credit is given to the "GRASS GIS developer team" as a group. The members of this group have changed over time as new members joined the group while others have departed. Also, persons take on different roles within the group which can also change over time. Some members chose to remain anonymous. There seems to be currently no mechanism to determine easily who were the members of the GRASS GIS developer team at a specific point in time and to link them to the DOI.<br />
* The Zenodo account which contains the archived GRASS GIS software releases is associated with the GRASS GIS developer team. The respective DOI (versions) for all GRASS GIS releases archived in Zenodo are therefore "owned" by the developer team as a whole, but can't be claimed by with individual members of the development team (and their respective ORCID-IDs). This is an unresolved problem. Best practice examples are needed, to ensure that members of the development team can receive their due recognition.<br />
* Credit by software citation for members of the GRASS developer team should include recognition of the different roles (e.g. original author, code maintenance, porting efforts, documentation, bugfixing, etc. To some extent, classifications for [https://www.loc.gov/marc/relators/relaterm.html relators] developed by the Library of Congress could be used, as it is being done by the [https://astrostatistics.psu.edu/su07/R/html/utils/html/citation.html R community] ([https://stat.ethz.ch/R-manual/R-devel/RHOME/library/utils/html/person.html Details]). This has not been addressed in the context of GRASS GIS. <br />
* DOI can be bundled or tied together (which is already implemented in Zenodo. Best practices are needed for the GRASS community how to use this (e.g. linking DOI for scientific papers, code, data, documentation, videos, etc.)<br />
* If the GRASS or OSGeo communities should decide in the future to become DOI-minting entities (by signing a contract with DataCite), it is feasible to link already existing Zenodo-DOI for the GRASS GIS releases to "new" OSGeo (or GRASS GIS) DOI. From the DOI-perspectice, there is no "vendor lock-in" by using the Zenodo archive.<br />
* Develop best practices how to tie independent GRASS-add-on modules which are already archived in Zenodo independently into the GRASS GIS codebase Zenodo archive.<br />
<br />
== GRASS GIS DOI ==<br />
<br />
DOI (for all versions, shows latest release on top): [https://doi.org/10.5281/zenodo.5176030 10.5281/zenodo.5176030]<br />
<br />
Back to main [[GRASS_Citation_Repository|Citation Repository]]<br />
<br />
[[Category:Citations]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_Citation_Repository&diff=27370GRASS Citation Repository2024-02-05T08:40:45Z<p>Neteler: </p>
<hr />
<div>== How to cite GRASS GIS ==<br />
<br />
Please cite GRASS when using the software in your work. Here are some choices depending on the version used and the type of citation:<br />
<br />
* GRASS GIS Manual citations,<br />
* Peer reviewed general GRASS GIS articles,<br />
* Books,<br />
* Topic oriented citations.<br />
<br />
Please select below:<br />
<br />
=== GRASS GIS Manual citations ===<br />
<br />
Software:<br />
* GRASS Development Team, 2022. Geographic Resources Analysis Support System (GRASS) Software, Version 8.2. Open Source Geospatial Foundation. Electronic document:. https://grass.osgeo.org<br />
* GRASS Development Team, 2017. Geographic Resources Analysis Support System (GRASS) Software, Version 7.2. Open Source Geospatial Foundation. Electronic document:. https://grass.osgeo.org<br />
* GRASS Development Team, 2016. Geographic Resources Analysis Support System (GRASS) Software, Version 7.0. Open Source Geospatial Foundation. Electronic document:. https://grass.osgeo.org<br />
* GRASS Development Team, 2015. Geographic Resources Analysis Support System (GRASS) Software, Version 6.4. Open Source Geospatial Foundation. Electronic document:. https://grass.osgeo.org<br />
<br />
Programmer's manual:<br />
* GRASS Development Team, 2017. Geographic Resources Analysis Support System (GRASS 7) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: https://grass.osgeo.org/programming7/<br />
* GRASS Development Team, 2015. Geographic Resources Analysis Support System (GRASS 6) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: https://grass.osgeo.org/programming6/<br />
<br />
Related BibTeX entry:<br />
<pre><br />
@Manual{GRASS_GIS_software,<br />
title = {Geographic Resources Analysis Support System (GRASS GIS) Software, Version 8.2},<br />
author = {{GRASS Development Team}},<br />
organization = {Open Source Geospatial Foundation},<br />
year = {2022},<br />
url = {https://grass.osgeo.org},<br />
}<br />
</pre><br />
<br />
(Search US Army documents at https://discover.dtic.mil/products-services/)<br />
<br />
* Predicting Database Requirements for Geographic Information Systems in the Year 2000: Long-Term Design Issues for GRASS (1992): https://apps.dtic.mil/sti/pdfs/ADA256862.pdf<br />
* Geographic Resources Analysis Support System (GRASS) Version 4.0 User's Reference Manual (1992): https://apps.dtic.mil/sti/tr/pdf/ADA255218.pdf<br />
* GRASS/GIS Implementation Guide (1989): https://apps.dtic.mil/sti/tr/pdf/ADA214623.pdf<br />
* r.mapcalc: An Algebra for GIS and Image Processing (1984): https://apps.dtic.mil/sti/pdfs/ADA283923.pdf<br />
* FORT HOOD GEOGRAPHIC INFORMATION SYSTEM: PILOT SYSTEM DEVELOPMENT AND USER INSTRUCTIONS (1983): https://apps.dtic.mil/sti/pdfs/ADA130618.pdf<br />
<br />
=== GRASS GIS Addon Manual citations ===<br />
<br />
Hint: when citing addons, you can simply use "grass-stable" in the URL which is auto-expanded to the latest version (e.g. grass82/). Like this the latest addon version is found.<br />
<br />
Example:<br />
* M. Lennert and GRASS Development Team, 2017: “Addon i.segment.stats. Geographic resources analysis support system (GRASS) software, version 7.2”, https://grass.osgeo.org/grass7/manuals/addons/i.segment.stats.html (1 June 2017)<br />
<br />
=== Peer reviewed general GRASS GIS articles ===<br />
<br />
* Neteler, M., Bowman, M.H., Landa, M., Metz, M., 2012. <i>GRASS GIS: A multi-purpose open source GIS</i>. Environ Model Soft 31, 124–130. ([https://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [https://web.archive.org/web/20120424040115/https://gis.cri.fmach.it/uploads/neteler_grass_env_model_software.pdf PDF])<br />
* Neteler, M., Bowman, M.H., Landa, M., Metz, M. (2012) "GRASS GIS: A multi-purpose open source GIS." Environmental Modelling & Software. Vol 31, pp. 124–130. ([https://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [https://web.archive.org/web/20120424040115/https://gis.cri.fmach.it/uploads/neteler_grass_env_model_software.pdf PDF])<br />
<br />
Related Bibtex entry:<br />
<pre><br />
@article{neteler2012grass,<br />
title={{GRASS GIS: a multi-purpose Open Source GIS}},<br />
author={Neteler, M. and Bowman, M.H. and Landa, M. and Metz, M.},<br />
journal={Environmental Modelling \& Software},<br />
year={2012},<br />
volume = {31},<br />
pages = {124--130},<br />
publisher={Elsevier},<br />
doi = "10.1016/j.envsoft.2011.11.014"<br />
}<br />
</pre><br />
<br />
=== Books ===<br />
* See https://grass.osgeo.org/learn/books/<br />
<br />
=== Topic oriented citations ===<br />
* see [[Citations for specific modules]]<br />
* Citations of [[GRASS in the wild]] (add your publications here)<br />
<br />
=== Historic citations ===<br />
<br />
<font color="grey"><br />
* GRASS Development Team, 2021. GRASS GIS 7 Programmer's Manual. Open Source Geospatial Foundation, USA. Electronic document: https://grass.osgeo.org/programming7/<br />
* GRASS Development Team, 2016. GRASS 6 Programmer's Manual. Open Source Geospatial Foundation, USA. Electronic document: https://grass.osgeo.org/programming6/<br />
* GRASS Development Team, 2012. GRASS 6.4 Users Manual. Open Source Geospatial Foundation, USA. Electronic document: https://grass.osgeo.org/grass64/manuals/<br />
* GRASS Development Team, 2007. GRASS 6.2 Users Manual. ITC-irst, Trento, Italy. Electronic document: https://grass.osgeo.org/grass62/manuals/<br />
* GRASS Development Team, 2002. GRASS 5.0 Users Manual. ITC-irst, Trento, Italy. Electronic document: https://grass.osgeo.org/grass57/manuals/html57_user/<br />
* U.S. Army CERL, 1993. GRASS 4.1 Reference Manual. U.S. Army Corps of Engineers, Construction Engineering Research Laboratories, Champaign, Illinois, 1-425.<br />
* Westervelt, J.D., Shapiro, M., Goran, W.D., Gerdes, D.P. (1992). Geographic Resources Analysis Support System (GRASS) Version 4.0 User's Reference Manual (No. CERL-ADP-N-87/22). CONSTRUCTION ENGINEERING RESEARCH LAB (ARMY) CHAMPAIGN IL. (PDF: https://apps.dtic.mil/sti/pdfs/ADA255218.pdf)<br />
* Shapiro, M., Westervelt, J., Gerdes, D., Higgins, M., & Larson, M. (1989). GRASS 3.0 programmer's manual (No. CERL-ADP-N-89/14). CONSTRUCTION ENGINEERING RESEARCH LAB (ARMY) CHAMPAIGN IL. (PDF: https://apps.dtic.mil/sti/pdfs/ADA252461.pdf)<br />
* ''Missing: Manuals of GRASS 1.0 and 2.0 - please submit to us!''<br />
</font><br />
<br />
* Newsletter citations<br />
** GRASSHopper CERL, https://grass.osgeo.org/about/history/<br />
** [[Newsletter citations Vol1]] 2004<br />
** [[Newsletter citations Vol2]] 2005<br />
** [[Newsletter citations Vol3]] 2005<br />
** [[Newsletter citations Vol4]] 2006<br />
<br />
== Helpful tools and GRASS related bibliographic searches ==<br />
* [https://grass.osgeo.org/grass-stable/manuals/addons/g.citation.html g.citation add-on module]<br />
* Google Scholar:<br />
** [https://scholar.google.com/scholar?q=GRASS+GIS Search for "GRASS GIS"] (activate BibTex export in "Scholar preferences")<br />
** The virtual [https://scholar.google.com/citations?user=gJ0ZB0cAAAAJ GRASS Development Team] - GRASS GIS related papers<br />
* [https://www.citeulike.org CiteULike] - [https://www.citeulike.org/tag/grass Search for "GRASS"]<br />
* [https://www.scripps.edu/~cdputnam/software/bibutils/ Bibutils] bibliography conversion utilities<br />
* [https://gbib.seul.org Gbib BibTeX editor] for GTK+Gnome<br />
* [https://jabref.sourceforge.net/ JabRef] Multi-platform, multi-format bibliography tool<br />
* [https://www.zotero.org/groups/gis Zotero citation manager GIS group] - with all known GRASS GIS and other GIS related references<br />
<br />
[[Category:Citations]]<br />
[[Category:Documentation]]<br />
[[Category:FAQ]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&diff=27359Compile and Install2024-01-10T09:01:07Z<p>Neteler: /* GRASS GIS 8 on Fedora */ add git</p>
<hr />
<div><!-- {{MoveToTrac}} --><br />
<br />
'''Disclaimer''': This page explains how to turn the GRASS GIS source code into an installable binary package ("compilation") for different operating systems. If you just want to get ready-to-use binaries, go [https://grass.osgeo.org/download/ here], otherwise read on...<br />
<br />
== How to do compilation and installation of GRASS GIS? ==<br />
<br />
Here we explain the procedure to compile GRASS from GitHub, but it also applies to official GRASS 7 releases.<br />
<br />
''For installation of precompiled binary packages, see the main [[Installation Guide]].''<br />
<br />
For detailed information on compilation, please see the [https://github.com/OSGeo/grass/blob/master/INSTALL INSTALL] file in the source code.<br />
<br />
=== Prerequisites ===<br />
<br />
==== Extra libraries ====<br />
GRASS GIS needs at least two extra libraries: PROJ and GDAL/OGR. It is recommended to download them as ready-to-use packages for your software platform (Linux distribution, Windows, Mac...).<br />
<br />
Other libraries needed to run GRASS are listed on the [http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html requirements page].<br />
<br />
To compile, you will also need the respective "-devel" packages; see below for details.<br />
<br />
==== Download GRASS GIS source code ====<br />
<br />
First, [https://grass.osgeo.org/download/ download the GRASS GIS source code].<br />
<br />
=== Generic Compilation and installation procedure ===<br />
<br />
* It is wise that compilation processes are carried out as a normal user: If you want to get the source code in a place where you do not have write permissions (e.g. in /usr/local/src/) just follow this:<br />
cd /usr/local/src/ <br />
su -c 'mkdir grass7'<br />
su -c 'chown yourlogin:yourgroup grass7'<br />
<br />
Otherwise if you have permissions just continue as a normal user:<br />
mkdir $HOME/src<br />
cd $HOME/src/<br />
git clone https://github.com/OSGeo/grass.git grass_master<br />
<br />
* run configure with parameters to adapt the compile process to your own system. To see what options can be passed to it, run:<br />
./configure --help | less <br />
<br />
<br />
<!-- The minimum set of configure parameters is <br />
./configure ### --><br />
It may (!) look like this:<br />
<br />
./configure \<br />
--with-cxx \<br />
--with-sqlite \<br />
--with-python \<br />
--with-geos \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype \<br />
--with-freetype-includes=/usr/include/freetype2 \<br />
--with-proj --with-proj-share=/usr/share/proj<br />
<br />
You may have to explicitly state the path for certain packages (i.e., gdal). The Unix 'locate' command will come in handy for finding the path of the package you need (you may have to run locate as root ex: sudo locate gdal-config).<br />
<br />
Please note that the paths mentioned may widely vary due to the distribution used.<br />
See [[Compile_and_Install#Platform_Specific_Notes|Platform Specific Notes]] below.<br />
<br />
Depending on your needs it may be a good idea to include debugging hooks.<br />
: See [[GRASS_Debugging#Compile_Time_Setup]].<br />
CFLAGS="-ggdb -Wall -Werror-implicit-function-declaration" ./configure ...<br />
<br />
<br />
At the end of configuration process you should get report not much different from this:<br />
<br />
GRASS is now configured for: x86_64-pc-linux-gnu<br />
<br />
Source directory: /home/user/software/grass_master<br />
Build directory: /home/user/software/grass_master<br />
Installation directory: ${prefix}/grass79<br />
Startup script in directory:${exec_prefix}/bin<br />
C compiler: gcc -O2 -march=native -std=gnu99 -fexceptions -fstack-protector -m64 -fdiagnostics-color <br />
C++ compiler: c++ -g -Wall<br />
Building shared libraries: yes<br />
OpenGL platform: X11<br />
<br />
MacOSX application: no<br />
MacOSX architectures: <br />
MacOSX SDK: <br />
<br />
BLAS support: yes<br />
BZIP2 support: no<br />
C++ support: yes<br />
Cairo support: yes<br />
DWG support: no<br />
FFTW support: yes<br />
FreeType support: yes<br />
GDAL support: yes<br />
GEOS support: yes<br />
[...]<br />
<br />
* Let's compile it (takes a little while...)!<br />
make -j2<br />
* At the end, you should get report not much different from this:<br />
----------------------------------------------------------------------<br />
Following modules are missing the 'description.html' file in src code:<br />
----------------------------------------------------------------------<br />
GRASS GIS compilation log<br />
-------------------------<br />
Started compilation: Mon 19 Aug 2019 10:47:57 PM CEST<br />
--<br />
Errors in:<br />
No errors detected.<br />
--<br />
Finished compilation: Mon 19 Aug 2019 10:55:12 PM CEST<br />
(In case of errors please change into the directory with error and run 'make')<br />
<br />
* If there is any error, change directory to directory with error and run "make" again. Report occurring bug to GRASS mailing list<br />
* Once the installation process is finished, you're ready to install GRASS system wide.<br />
su -c 'make install'<br />
* enjoy GRASS: <br />
grass79<br />
<br />
=== What else? ===<br />
<br />
If you want to use [http://www.qgis.org QGIS], then also compile the GRASS-GDAL/OGR plugin. This is also useful to access your GRASS-data<br />
from other application using GDAL/OGR like [http://thuban.intevation.de thuban].<br />
* [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]] (enables QGIS to read GRASS data directly)<br />
<br />
=== Compile and install GDAL-GRASS plugin ===<br />
<br />
* See [[Compile and install GDAL-GRASS plugin]]<br />
<br />
=== Platform Specific Notes ===<br />
<br />
==== Linux ====<br />
<br />
Linux comes in various flavours, i.e. distributions.<br />
<br />
===== Distribution related packaging =====<br />
<br />
* Arch Linux: https://github.com/czka/AUR-grass7<br />
* Centos: https://src.fedoraproject.org/rpms/grass<br />
* Debian: https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging<br />
* EPEL: https://src.fedoraproject.org/rpms/grass<br />
* Fedora: https://src.fedoraproject.org/rpms/grass<br />
* Ubuntu: https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging<br />
<br />
===== Alpine Linux =====<br />
<br />
<source lang="bash"><br />
# install compiler tools and libraries<br />
apk add build-base bzip2-dev cairo-dev fftw-dev freetype-dev g++ gcc gdal-dev geos-dev git \<br />
gnutls-dev libc6-compat libjpeg-turbo-dev libpng-dev make openjpeg-dev openblas-dev \<br />
postgresql-dev proj-dev python3-dev py3-numpy-dev sqlite-dev tar tiff-dev unzip vim \<br />
wget zip zstd-dev<br />
<br />
# install needed tools and libraries when using GRASS GIS<br />
apk add attr bash bison bzip2 cairo curl fftw flex freetype gdal gdal-tools gettext geos gnutls \<br />
jsoncpp libbz2 libexecinfo libjpeg-turbo libpng libunwind musl musl-utils ncurses openjpeg \<br />
openblas py3-numpy py3-pillow py3-six postgresql proj-datumgrid proj-util sqlite sqlite-libs \<br />
subversion tiff zstd zstd-libs<br />
<br />
# get source code<br />
cd ~<br />
wget -c https://grass.osgeo.org/grass78/source/snapshot/grass-7.8.git_src_snapshot_latest.tar.gz<br />
<br />
# unpack<br />
tar xvfz grass-7.8.git_src_snapshot_latest.tar.gz<br />
rm -f grass-7.8.git_src_snapshot_latest.tar.gz<br />
<br />
# change into source code (update path name as needed)<br />
cd grass-7.8.git_src_snapshot_2021_05_01/<br />
<br />
# minimal configuration<br />
./configure \<br />
--with-cxx \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-geos \<br />
--with-sqlite \<br />
--without-nls \<br />
--without-wxwidgets \<br />
--without-fftw \<br />
--without-cairo \<br />
--without-freetype \<br />
--enable-largefile \<br />
--without-opengl \<br />
--without-odbc<br />
<br />
# compilation<br />
nice make -j2<br />
</source><br />
<br />
===== Arch Linux =====<br />
<br />
* <big>'''Easiest method : use AUR (Arch User Repository) package'''</big><br />
Up-to-date links to Arch Linux GRASS PKGBUILDs are on https://grass.osgeo.org/download/software/linux/.<br />
<br />
Please note that at this time AUR package has a problem : a symlink of python2 is created to work with grass whereas executable script call python3 ... Workaround is to comment symlink in AUR GRASS PKGBUILD<br />
<br />
* <big>'''Compile from source code'''</big><br />
If you want to compile it yourself, you could follow steps below : <br />
<br />
Install dependencies : <br />
pacman -S bzip2 cairo fftw fontconfig freetype2 gcc-libs gdal geos glibc glu libpng libtiff libx11 libgl netcdf pdal proj python-gdal python-numpy python-pillow python-wxpython readline zlib zstd<br />
<br />
Download and extract sources : https://grass.osgeo.org/download/software/sources/<br />
<br />
We can now start building GRASS 7<br />
<br />
export PATH=~/usr/bin:$PATH && \<br />
./configure \<br />
--enable-debug \<br />
--with-readline \<br />
--with-freetype=yes \<br />
--with-freetype-includes="/usr/include/freetype2/" \<br />
--with-geos \<br />
--with-odbc \<br />
--with-pthread \<br />
--with-fftw-includes="/usr/include/" \<br />
--with-fftw-libs=/usr/lib/ \<br />
--with-wxwidgets \<br />
--with-postgres \<br />
--with-pdal \<br />
--with-netcdf \<br />
--with-bzlib \<br />
--with-zstd<br />
<br />
Now let's compile and install it<br />
<br />
make<br />
make install<br />
<br />
<br />
It's done, you can enjoy GRASS 7 in Arch, just type "grass78" (Please adjust version after grass) in the terminal to launch it.<br />
<br />
===== Generic procedure for Debian-based distributions (Ubuntu, ...) =====<br />
<br />
WORK IN PROGRESS<br />
<br />
1. Install official GRASS package<br />
<br />
sudo apt install grass grass-dev<br />
<br />
2. Enable source code download<br />
<br />
# do backup first<br />
sudo cp /etc/apt/sources.list /etc/apt/sources.list.orig<br />
sudo sed -i '/^#\sdeb-src /s/^# *//' /etc/apt/sources.list<br />
<br />
3. Install GRASS dependencies<br />
<br />
sudo apt build-dep grass<br />
<br />
4. Download GRASS source code<br />
<br />
git clone https://github.com/osgeo/grass<br />
<br />
5. Compile GRASS from source code<br />
<br />
cd grass<br />
<br />
Configure:<br />
<br />
grass --config build | sh<br />
<br />
Optionally install missing dependecies (can happen when official GRASS package is not compatible with GRASS master), eg.<br />
<br />
sudo apt install libzstd-dev<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
6. Run locally or install<br />
<br />
./bin.x86_64-pc-linux-gnu/grass79 --version<br />
<br />
or <br />
<br />
sudo make install<br />
grass79 --version<br />
<br />
===== Debian =====<br />
<br />
* Official [http://wiki.debian.org/DebianGis DebianGIS] packaging control files, available on git server:<br />
git://git.debian.org/git/pkg-grass/grass.git<br />
<br />
http://anonscm.debian.org/cgit/pkg-grass/grass.git/<br />
<br />
<!-- commented old stuff (G6)<br />
====== GRASS 6.1 on Debian Sarge ======<br />
<br />
* [http://hamish.bowman.googlepages.com/debiangisfiles#compile Compiling GRASS 6.1-CVS on Debian/OldStable (aka 3.1, Sarge)]<br />
<br />
====== GRASS 6.4 on Debian Lenny ======<br />
<br />
Install needed packages:<br />
apt-get install flex bison libreadline-dev libncurses5-dev lesstif2-dev debhelper dpatch libtiff4-dev \<br />
tcl-dev tk-dev libfftw3-dev libxmu-dev libfreetype6-dev autoconf2.13 autotools-dev doxygen \<br />
libmysqlclient15-dev graphviz libsqlite3-dev python-wxgtk2.8 libcairo2-dev libwxgtk2.8-dev \<br />
python-dev libgdal1-dev libgdal1-1.5.0 libproj-dev libproj0 proj-bin proj-data mysql<br />
<br />
# Important: avoid using CFLAGS="... -Werror-implicit-function-declaration" (also on later Debian versions), see {{trac|1684}}<br />
<br />
Configure:<br />
./configure \<br />
--with-cxx \<br />
--with-sqlite \<br />
--with-postgres --with-postgres-includes=/usr/include/postgresql \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql \<br />
--with-odbc \<br />
--with-cairo \<br />
--with-proj-share=/usr/share/proj \<br />
--with-tcltk-includes=/usr/include/tcl8.4/ \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-motif --with-fftw --with-nls --with-python \<br />
--with-x --x-libraries=/usr/lib/x86_64-linux-gnu<br />
<br />
Compile:<br />
make<br />
<br />
Install:<br />
sudo make install<br />
<br />
====== GRASS 6.4 on Debian Jessie ======<br />
<br />
Install needed packages:<br />
apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev tcl-dev tk-dev \<br />
libfreetype6-dev libgdal1h libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \<br />
libncurses5-dev libreadline-dev libsqlite3-dev libtiff5-dev \<br />
libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
libproj-dev proj-bin proj-data python-numpy python-wxgtk3.0 subversion wx-common zlib1g-dev \<br />
netcdf-bin libnetcdf-dev libatlas-dev libgegl-dev doxygen postgresql mysql-server \<br />
libgeotiff-dev libblas-dev libgeotiff-epsg libxmu-dev libxt-dev libx11-dev<br />
<br />
# Important: avoid using CFLAGS="... -Werror-implicit-function-declaration" (also on later Debian versions), see {{trac|1684}}<br />
<br />
Configure:<br />
./configure \<br />
--with-cxx \<br />
--with-sqlite \<br />
--with-postgres \<br />
--with-odbc \<br />
--with-cairo \<br />
--with-geos \<br />
--with-proj-share=/usr/share/proj \<br />
--with-tcltk-includes=/usr/include/tcl8.6/ \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-motif \<br />
--with-fftw \<br />
--with-nls \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-python \<br />
--with-x --x-libraries=/usr/lib/x86_64-linux-gnu<br />
<br />
Compile:<br />
make<br />
<br />
Install:<br />
sudo make install<br />
<br />
====== GRASS 7 on Debian Squeeze ======<br />
<br />
Install needed packages:<br />
apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev python-dev \<br />
g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev \<br />
libgdal1 libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \<br />
libncurses5-dev libproj-dev libreadline-dev libsqlite3-dev libtiff4-dev \<br />
libwxgtk2.8-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python-numpy python-wxgtk2.8 subversion wx-common zlib1g-dev<br />
<br />
Download source code:<br />
<br />
svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk<br />
<br />
Configure:<br />
<br />
cd grass_trunk/<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure --prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--without-tcltk \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite \<br />
--with-cairo --with-python=/usr/bin/python2.6-config --with-wxwidgets \<br />
--with-geos --with-pthread<br />
<br />
Compile:<br />
make<br />
<br />
Install:<br />
sudo make install # installs as /usr/local/bin/grass72<br />
<br />
====== GRASS 7 on Debian Wheezy ======<br />
<br />
Install needed packages:<br />
<br />
# note: cmake and libboost-all-dev only needed for optional libLAS<br />
sudo apt-get install cmake libboost-all-dev<br />
<br />
sudo apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev \<br />
libgdal1 libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev libncurses5-dev libproj-dev \<br />
libreadline-dev libtiff4-dev libwxgtk2.8-dev libxmu-dev libxmu-headers \<br />
libxt-dev mesa-common-dev proj-bin proj-data python-numpy python-wxgtk2.8 subversion wx-common \<br />
zlib1g-dev netcdf-bin libatlas-dev libgegl-dev opencl-headers ocl-icd-libopencl1 \<br />
libsqlite3-dev postgresql python-sphinx python-gdal<br />
<br />
Download and Install libLAS<br />
wget http://download.osgeo.org/liblas/libLAS-1.7.0.tar.gz<br />
tar -zxvf libLAS-1.7.0.tar.gz<br />
cd libLAS-1.7.0/<br />
mkdir makefiles<br />
cd makefiles<br />
cmake -G "Unix Makefiles" ../<br />
make<br />
sudo make install<br />
sudo ldconfig<br />
cd ../..<br />
<br />
Download of GRASS GIS 7 source code:<br />
wget http://grass.osgeo.org/grass78/source/grass-7.8.0.tar.gz<br />
tar -zxvf grass-7.8.0.tar.gz<br />
<br />
Configure:<br />
cd grass-7.0.0<br />
CFLAGS="-g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" CXXFLAGS="-g -Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal \<br />
--with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos --with-blas \<br />
--with-lapack-includes=/usr/lib/lapack --with-liblas=yes \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=yes --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql<br />
<br />
# --with-mysql=yes --with-mysql-includes=/usr/include/mysql \<br />
# --with-mysql-libs=/usr/lib/mysql \<br />
<br />
GRASS GIS 7 is now configured (example):<br />
<br />
Source directory: /home/user/grass-7.0.0<br />
Build directory: /home/user/grass-7.0.0<br />
Installation directory: ${prefix}/grass-7.0.0<br />
Startup script in directory:${exec_prefix}/bin<br />
C compiler: gcc -g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused <br />
C++ compiler: c++ -g -Wall<br />
Building shared libraries: yes<br />
OpenGL platform: X11<br />
MacOSX application: no<br />
MacOSX architectures: <br />
MacOSX SDK: <br />
BLAS support: yes<br />
C++ support: yes<br />
Cairo support: yes<br />
DWG support: no<br />
FFTW support: yes<br />
FreeType support: yes<br />
GDAL support: yes<br />
GEOS support: yes<br />
LAPACK support: no<br />
Large File support (LFS): yes<br />
libLAS support: yes<br />
MySQL support: no<br />
NetCDF support: yes<br />
NLS support: yes<br />
ODBC support: yes<br />
OGR support: yes<br />
OpenCL support: no<br />
OpenGL support: yes<br />
OpenMP support: yes<br />
PNG support: yes<br />
POSIX thread support: yes<br />
PostgreSQL support: yes<br />
Readline support: yes<br />
Regex support: yes<br />
SQLite support: yes<br />
TIFF support: yes<br />
wxWidgets support: yes<br />
X11 support: no<br />
<br />
Compile:<br />
make -j2<br />
<br />
Install:<br />
sudo make install # installs as /usr/local/bin/grass70<br />
<br />
Launch:<br />
grass70<br />
<br />
====== GRASS 7 on Debian Jessie ======<br />
<br />
Install needed packages:<br />
sudo apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 \<br />
autotools-dev python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev \<br />
libfreetype6-dev libgdal1h libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \<br />
libncurses5-dev libproj-dev libreadline-dev libsqlite3-dev libtiff5-dev \<br />
libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python-numpy python-wxgtk3.0 subversion wx-common zlib1g-dev \<br />
netcdf-bin libnetcdf-dev libgegl-dev doxygen python-sphinx \<br />
postgresql libgeotiff-dev libblas-dev mysql-server \<br />
libatlas-dev liblapack3gf liblapack-dev<br />
# opencl-headers ocl-icd-libopencl1 liblas-bin liblas-c-dev python-gdal<br />
<br />
Download and compile libLAS (or simply install 'liblas-c-dev ', see above):<br />
wget http://download.osgeo.org/liblas/libLAS-1.8.0.tar.bz2<br />
tar xjf libLAS-1.8.0.tar.bz2<br />
mkdir libLAS-1.8.0/makefiles<br />
cd libLAS-1.8.0/makefiles<br />
cmake -G "Unix Makefiles" ../<br />
make<br />
sudo make install<br />
<br />
Download and compile GRASS 7:<br />
# (check there for later version)<br />
wget http://grass.osgeo.org/grass74/source/grass-7.4.0.tar.gz<br />
tar xzfv grass-7.4.0.tar.gz<br />
cd grass-7.4.0<br />
CFLAGS="-g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-g -Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-blas --with-blas-includes=/usr/include/atlas/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas/ \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql \<br />
--with-mysql=yes --with-mysql-includes=/usr/include/mysql \<br />
--with-mysql-libs=/usr/lib/mysql<br />
make -j2<br />
<br />
Install:<br />
sudo make install # installs as /usr/local/bin/grass74<br />
<br />
--><br />
<br />
====== GRASS 7 on Debian Stretch ======<br />
(Updated from above with package changes required for Debian Stretch)<br />
<br />
Install needed packages for GRASS 7.2 - 7.6:<br />
apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 \<br />
libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libncurses5-dev libproj-dev libreadline-dev \<br />
libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python-numpy python-wxgtk3.0 python-wxtools wx-common zlib1g-dev netcdf-bin \<br />
libnetcdf-dev libgegl-dev doxygen python-sphinx postgresql libgeotiff-dev libblas-dev \<br />
mariadb-server libatlas-dev liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \<br />
subversion liblas-bin liblas-c-dev python-gdal libpdal-dev libpdal-plugin-python pdal<br />
<br />
Install needed packages for GRASS 7.8+ (Python 3 support!):<br />
apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 python3-dev \<br />
libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libproj-dev libreadline-dev libgeos-c1v5 \<br />
libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python3-numpy python3-six wx-common zlib1g-dev netcdf-bin \<br />
libnetcdf-dev libgegl-dev doxygen python3-sphinx postgresql libgeotiff-dev libblas-dev \<br />
libatlas-dev liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \<br />
subversion liblas-bin liblas-c-dev python3-gdal libpdal-dev libpdal-plugin-python pdal<br />
<br />
# ? python3-wxgtk4.0 libmariadb<br />
<br />
Download and unpack source code or fetch from GitHub: https://github.com/OSGeo/grass<br />
<br />
Configuration:<br />
<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-blas --with-blas-includes=/usr/include/atlas/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas/ \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql \<br />
--with-mysql=yes --with-mysql-includes=/usr/include/mysql<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
Install:<br />
<br />
make install<br />
<br />
====== GRASS 7 on Debian Buster ======<br />
<br />
-- To be updated --<br />
<br />
Install needed packages for GRASS 7.8+ (Python 3 support!):<br />
apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 python3-dev \<br />
libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libproj-dev libreadline-dev libgeos-c1v5 \<br />
libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python3-numpy python3-six wx-common zlib1g-dev netcdf-bin \<br />
libnetcdf-dev libgegl-dev doxygen python3-sphinx postgresql libgeotiff-dev libblas-dev \<br />
liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \<br />
subversion liblas-bin liblas-c-dev python3-gdal libpdal-dev libpdal-plugin-python pdal \<br />
python3-wxgtk4.0 default-libmysqlclient-dev<br />
<br />
Download and unpack GRASS GIS 7.8 source code or fetch from GitHub: https://github.com/OSGeo/grass<br />
<br />
Configuration:<br />
<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-blas --with-blas-includes=/usr/include/atlas/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas/ \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql \<br />
--with-mysql=yes --with-mysql-includes=/usr/include/mysql<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
Install:<br />
<br />
make install<br />
<br />
====== GRASS 8 on Debian 11 (bullseye) ======<br />
<br />
Install needed packages for GRASS 8.2:<br />
apt-get update && \<br />
apt-get install bison debhelper-compat dh-python doxygen fakeroot flex graphviz \<br />
libblas-dev libbz2-dev libcairo2-dev libfftw3-dev libfreetype6-dev \<br />
libgdal-dev libgeos-dev libgl1-mesa-dev libglu1-mesa-dev libjpeg-dev liblapack-dev libmotif-dev \<br />
default-libmysqlclient-dev libncurses5-dev libnetcdf-dev libpng-dev libpq-dev \<br />
libproj-dev libreadline-dev libsqlite3-dev libtiff-dev libxmu-dev libzstd-dev \<br />
netcdf-bin pkg-config proj-bin python3 python3-dev python3-numpy python3-pil python3-ply \<br />
python3-six python3-wxgtk4.0 wget unixodbc-dev zlib1g-dev<br />
<br />
<br />
Download and unpack GRASS GIS 8.2 source code (or fetch from GitHub: https://github.com/OSGeo/grass):<br />
<br />
wget https://grass.osgeo.org/grass82/source/grass-8.2-latest.tar.gz<br />
tar xvfz grass-8.2-latest.tar.gz<br />
cd grass-8.2.*<br />
<br />
Configuration:<br />
<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
Install:<br />
<br />
make install<br />
<br />
===== Ubuntu =====<br />
<br />
There is a dedicated page on how to [[Compile_and_Install_Ubuntu | Compile the GRASS GIS source code & install it in Ubuntu]].<br />
<br />
===== Linux Mint =====<br />
<br />
The [[Compile_and_Install_Ubuntu | detailed compilation guide for Ubuntu]] may just work. However, here is a short guide for Mint:<br />
<br />
<source lang="bash"><br />
# Linux Mint 21+<br />
<br />
# be sure to have an updated system<br />
sudo apt-get update && sudo apt-get upgrade -y<br />
<br />
# installation of required libraries and compile tools<br />
# recommended to give Python3 precedence over Python2 (which is end-of-life since 2019)<br />
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1<br />
<br />
# install compiler tools and further dependencies (tested with Linux Mint 21)<br />
# this is a single command, please copy-paste it entirely into the terminal:<br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ cmake ccache \<br />
libproj-dev proj-data proj-bin \<br />
libgeos-dev \<br />
libgdal-dev python3-gdal gdal-bin \<br />
python3 python3-dev \<br />
python3-opengl \<br />
python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-gtk3-dev libwxbase3.0-dev \<br />
libncurses5-dev zlib1g-dev gettext \<br />
libbz2-dev libzstd-dev libfreetype6-dev \<br />
libtiff5-dev libpnglite-dev libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev libpq-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev \<br />
subversion \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
'''GUI''' - update wxpython:<br />
<br />
<source lang="bash"><br />
pip3 install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 wxPython<br />
</source><br />
<br />
Next steps:<br />
* create a subdirectory in your HOME tree for storing the GRASS GIS source code (and later compilation)<br />
* get source code, one of the two options:<br />
** a) download [https://grass.osgeo.org/grass-stable/source/snapshot/ GRASS GIS source code weekly snapshot] (e.g. take the "8.x.git snapshot"), or<br />
*** unpack source code<br />
** b) current source code from GitHub:<br />
*** <code>git clone https://github.com/OSGeo/grass.git</code><br />
* change into the source code directory<br />
<br />
<source lang="bash"><br />
# in the source code directory, "configure" the source code to prepare for compilation:<br />
./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-geos \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-zstd \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-fftw \<br />
--with-opengl-libs=/usr/include/GL \<br />
--without-postgres \<br />
--without-pdal \<br />
--without-netcdf \<br />
--without-mysql \<br />
--without-odbc \<br />
--without-openmp<br />
<br />
# compile GRASS GIS<br />
make -j2<br />
<br />
# install compiled GRASS GIS on system<br />
sudo make install<br />
<br />
# use GRASS GIS! Start on command line<br />
grass<br />
</source><br />
<br />
===== Mandriva =====<br />
<br />
Installation of dependencies (urpmi will ask you a few more):<br />
<br />
'''Mandriva 2009:''' (take out the '64' everywhere if you are on 32bit)<br />
# as root<br />
urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \<br />
mesagl1-devel mesaglu1-devel lib64xmu6-devel gcc-c++ gettext \<br />
lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \<br />
lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion<br />
exit<br />
<br />
'''Mandriva 2010:''' (take out the '64' everywhere if you are on 32bit) - see also [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SPECS/ SPEC] file<br />
# as root<br />
# installation of PROJ and GDAL<br />
urpmi proj proj-devel gdal gdal-devel gcc-gfortran lib64openssl1.0.0 \<br />
lib64openssl1.0.0-devel postgresql8.4-devel lib64pq8.4<br />
<br />
# installation of compilation environment<br />
urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \<br />
lib64mesagl1-devel lib64mesaglu1-devel lib64xmu6-devel gcc-c++ gettext \<br />
lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \<br />
lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion<br />
exit<br />
<br />
Then, to configure GRASS, run (64 bit stuff optional of course):<br />
# as user<br />
./configure \<br />
--enable-64bit --with-libs=/usr/lib64 \<br />
--with-cxx \<br />
--with-gdal=/usr/local/bin/gdal-config \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-python \<br />
--with-wxwidgets=/usr/lib/wxPython/bin/wx-config \<br />
--with-fftw \<br />
--with-ffmpeg --with-ffmpeg-includes="/usr/include/libav* /usr/include/libpostproc /usr/include/libswscale" \<br />
--with-motif \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64 \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--enable-largefile<br />
<br />
# compilation (use -j2 ior -j4 parameter on multi-core CPUs to accelerate): <br />
make<br />
<br />
Installation:<br />
su<br />
# this will install into /usr/local/<br />
make install<br />
exit<br />
<br />
===== Enterprise Linux =====<br />
<br />
Enterprise Linux (EL) and derivatives (that is, Red Hat Enterprise Linux, CentOS and Scientific Linux) is a popular and robust platform for servers and computing-heavy workstations, and is therefore a good fit for GIS specific requirements.<br />
<br />
See: http://wiki.osgeo.org/wiki/Enterprise_Linux_GIS<br />
<br />
===== Scientific Linux =====<br />
<br />
See Centos<br />
<br />
===== CentOS =====<br />
<br />
You first need to add the EPEL repository for PROJ.4 and GDAL, see [https://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F here]<br />
<br />
<strike><br />
Preparation '''Centos 5''' (old):<br />
yum install epel-release<br />
<br />
# Note: CentOS 5 comes with Python 2.4 which lacks python-config, hence two extra tweaks are needed.<br />
yum install flex bison zlib-devel tcl-devel tk-devel gcc-c++ gettext \<br />
libtiff-devel libpng-devel sqlite-devel \<br />
mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel \<br />
mesa-libOSMesa-devel libXmu-devel python-devel gtk2-devel\<br />
ncurses-devel postgresql-devel make<br />
</strike><br />
<br />
Preparation '''Centos 6''' | '''Scientific Linux 6''':<br />
yum install epel-release<br />
<br />
yum install flex bison make zlib-devel gcc-c++ gettext \<br />
sqlite-devel mesa-libGL-devel mesa-libGLU-devel \<br />
libXmu-devel libX11-devel fftw-devel libtiff-devel \<br />
lesstif-devel python-devel numpy wxPython wxGTK-devel \<br />
proj proj-devel proj-epsg proj-nad libxml2 gdal gdal-devel geos geos-devel \<br />
python-dateutil python-imaging python-matplotlib python-argparse<br />
# only GRASS GIS 6: install also tcl-devel tk-devel<br />
<br />
Preparation '''Centos 7''' | '''Scientific Linux 7''':<br />
yum install epel-release<br />
<br />
yum install flex bison make zlib-devel gcc-c++ gettext \<br />
sqlite-devel mesa-libGL-devel mesa-libGLU-devel \<br />
libXmu-devel libX11-devel fftw-devel libtiff-devel \<br />
lesstif-devel python-devel numpy wxPython wxGTK-devel \<br />
proj proj-devel proj-epsg proj-nad libxml2 gdal gdal-devel geos geos-devel \<br />
netcdf netcdf-devel blas-devel lapack-devel atlas-devel \<br />
python-dateutil python-imaging python-matplotlib python-sphinx \<br />
doxygen subversion<br />
<br />
Preparation '''Centos 8''' | '''Scientific Linux 8''':<br />
dnf install epel-release<br />
<br />
dnf install flex bison make zlib-devel gcc-c++ gettext \<br />
fftw-devel libtiff-devel sqlite-devel \<br />
proj proj-devel proj-datumgrid libxml2 \<br />
geos geos-devel git \<br />
netcdf netcdf-devel atlas-devel \<br />
blas-devel lapack-devel libpq-devel \<br />
python3-devel python3-numpy \<br />
python3-dateutil python3-imaging python3-matplotlib \<br />
gdal gdal-libs gdal-python-tools python3-gdal gdal-devel \<br />
wxGTK3-devel mesa-libGL-devel mesa-libGLU-devel \<br />
libXmu-devel libX11-devel<br />
<br />
'''GRASS GIS 7 compilation and installation'''<br />
<br />
[https://grass.osgeo.org/grass-stable/source/snapshot/ Download source code] (e.g., --> "Download latest 7.8 code)" and configure GRASS 7 (suggestion: save this as script):<br />
<br />
./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-sqlite \<br />
--with-python \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-wxwidgets=/usr/bin/wx-config \<br />
--with-openmp \<br />
--with-blas --with-blas-includes=/usr/include/atlas-x86_64-base/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas-x86_64-base/ \<br />
--with-fftw \<br />
--with-geos \<br />
--with-netcdf \<br />
--without-ffmpeg \<br />
--without-mysql \<br />
--without-postgres \<br />
--without-odbc \<br />
--without-fftw<br />
<br />
Compile:<br />
make<br />
or on a multicore system (number depends of available cores):<br />
make -j4<br />
<br />
For a system wide installation, run as root user:<br />
make install<br />
OR simply run it directly from the source code directory (substitute ARCH with i686 or x86_64):<br />
<br />
bin.$ARCH/grass78 -gui<br />
<br />
In this case, for convenience, add it to the search path:<br />
mkdir $HOME/bin<br />
cd $HOME/bin<br />
# example:<br />
ln -s $HOME/software/grass78_release/bin.x86_64-pc-linux-gnu/grass78 .<br />
<br />
Now use it subsequently with<br />
grass78 -gui<br />
<br />
<br />
'''Installation grass78 on a HPC system with '''Centos 7''' and no root privileges:'''<br />
This assumes that python3, fftw, proj, gdal and geos are available on the HPC system, either as modules or as installed software.<br />
<br />
Download and prepare some dependencies (freetypes and zstd)<br />
mkdir -p $HOME/grass/freetypes<br />
cd $HOME/grass/freetypes<br />
wget path/to/freetype-2.9.1.tar.gz<br />
tar -xf freetype-2.9.1.tar.gz<br />
<br />
mkdir $HOME/grass/zstd<br />
cd mkdir $HOME/grass/zstd<br />
wget path/to/v1.4.4/zstd-1.4.4.tar.gz<br />
tar -xf zstd-1.4.4.tar.gz<br />
make install PREFIX=./<br />
<br />
Add the ZSTD path to your LD_LIBRARY_PATH<br />
<br />
tee -a $HOME/.bashrc > /dev/null << EOT<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/grass/zstd/zstd-1.4.4/lib<br />
EOT<br />
<br />
The configure command could look like this<br />
./configure \<br />
-prefix=$HOME/grass \<br />
--enable-64bit --with-fftw-includes=/path/to/fftw/include/ \<br />
--with-fftw-libs=/path/to/fftw/lib/ \<br />
--with-freetype-includes=$HOME/grass/freetypes/freetype-2.9.1/include/ \<br />
--with-netcdf --with-geos --with-blas --with-lapack --with-postgres \<br />
--with-zstd-includes=$HOME/grass/zstd/zstd-1.4.4/lib/ \<br />
--with-zstd-libs=$HOME/grass/zstd/zstd-1.4.4/lib/ \<br />
--with-gdal=/path/to/gdal-config # This could be the path to a gdal version compiled from source<br />
<br />
Finally usual:<br />
make; make install<br />
<br />
===== Gentoo =====<br />
<br />
./configure \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/"<br />
<br />
See also http://packages.gentoo.org/package/sci-geosciences/grass<br />
<br />
===== Funtoo =====<br />
<br />
{{MovedToTrac|FuntooLinux}}<br />
<br />
===== Fedora =====<br />
<br />
<!-- commented out, too old<br />
<br />
====== GRASS GIS 6 on Fedora ======<br />
<br />
'''Preparation''' for the compilation of GRASS GIS 6 source code (F16-F21):<br />
<br />
yum install proj-devel gdal-devel sqlite-devel ffmpeg-devel mesa-libGL-devel \<br />
mesa-libGLU-devel libXmu-devel libX11-devel tcl-devel tk-devel geos \<br />
fftw-devel libtiff-devel lesstif-devel python-devel numpy wxPython wxGTK-devel \<br />
gcc gcc-c++ bison flex ncurses-devel proj-epsg proj-nad xml2 subversion<br />
<br />
''Note 1: that currently gdal-devel has (too) many dependencies and may lead to a massive download of extra packages (200 on a fresh Fedora 16 install). Hopefully solved in later Fedora versions.''<br />
<br />
''Note 2: the optional ffmpeg-devel comes from the rpmfusion-free repository ([http://rpmfusion.org/Configuration/ configuration]).''<br />
<br />
'''Download''' the source code:<br />
* GRASS GIS 6: [http://grass.osgeo.org/download/software/sources/ release package] - [http://grass.osgeo.org/grass64/source/snapshot/ weekly snapshot] - [http://trac.osgeo.org/grass/wiki/DownloadSource#GRASS6.4 SVN repository]<br />
<br />
'''Configure''': This is an ''example'' how to configure the source code on a Fedora system:<br />
<br />
./configure \<br />
--with-cxx \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-geos \<br />
--with-wxwidgets=/usr/bin/wx-config \<br />
--with-python=/usr/bin/python-config \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--enable-largefile \<br />
--without-odbc \<br />
--with-fftw<br />
<br />
Extra: If you also want '''FFMPEG''' support - it requires 'yum install fftw-devel'. Then add to the configuration lines above:<br />
<br />
--with-ffmpeg --with-ffmpeg-includes="/usr/include/ffmpeg /usr/include/ffmpeg/libav* /usr/include/ffmpeg/libpostproc /usr/include/ffmpeg/libswscale" \<br />
<br />
<br />
Finally '''compile''' the configured source code:<br />
make<br />
or on multicore (number depends of available cores):<br />
make -j4<br />
and<br />
make install # requires root permissions unless you become owner of /usr/local/<br />
<br />
Then use GRASS GIS 6 and enjoy!<br />
--><br />
<br />
====== GRASS GIS 8 on Fedora ======<br />
<br />
'''Preparation''' for the compilation of GRASS GIS 8+ source code (F36+):<br />
<br />
dnf install gcc gcc-c++ bison flex ncurses-devel gettext proj-devel \<br />
gdal gdal-devel sqlite-devel xml2 mesa-libGL-devel cairo-devel \<br />
fftw-devel mesa-libGLU-devel libXmu-devel libX11-devel geos geos-devel \<br />
libtiff-devel python3-devel numpy wxGTK3-devel git subversion \<br />
python3-dateutil python3-imaging python3-matplotlib-wx doxygen python3-sphinx \<br />
libzstd-devel libzstd python3-six python3-numpy python3-wxpython4 \<br />
proj-data PDAL-devel PDAL-libs<br />
<br />
# optionally also: netcdf-devel postgresql-devel <br />
# atlas-devel lapack-devel lapack-devel <br />
# laszip laszip-devel<br />
# proj-data-at proj-data-au proj-data-be ...<br />
<br />
''Note 1: the optional ffmpeg-devel comes from the rpmfusion-free repository ([http://rpmfusion.org/Configuration/ configuration]).''<br />
<br />
<br />
'''Download''' and unpack the source code:<br />
* GRASS GIS 8: [https://grass.osgeo.org/grass-stable/source/snapshot/ weekly snapshot] - [https://github.com/OSGeo/grass/releases GitHub repository]<br />
<br />
<br />
'''Configure''': This is an example how to configure the source code on a Fedora system:<br />
<br />
./configure \<br />
--with-cxx \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-geos \<br />
--with-pdal \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-wxwidgets=/usr/bin/wx-config \<br />
--with-fftw \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--enable-largefile \<br />
--without-odbc<br />
<br />
''Extra 1:'' If you also want '''FFMPEG support''' - it requires 'dnf install fftw-devel' from the rpmfusion-free repository. Then add to the configuration lines above:<br />
<br />
--with-ffmpeg --with-ffmpeg-includes="/usr/include/ffmpeg /usr/include/ffmpeg/libav* /usr/include/ffmpeg/libpostproc /usr/include/ffmpeg/libswscale" \<br />
<br />
''Extra 2:'' For '''LAPACK/BLAS support''' (addons i.spec.unmix, v.kriging etc), install "dnf install lapack lapack-devel blas blas-devel atlas atlas-devel". Then add to the configuration lines above:<br />
--with-blas --with-blas-includes=/usr/include/atlas-x86_64-base/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas-x86_64-base/ \<br />
<br />
''Extra 3:'' For '''ZSTD support''' (Zstandard compression algorithm), first install "dnf install libzstd libzstd-devel zstd". After installing the zstd related packages, add to the configuration lines above:<br />
--with-zstd \<br />
<br />
Finally '''compile''' the configured source code:<br />
make<br />
or on multicore (number depends of available cores):<br />
make -j4<br />
and<br />
make install # requires root permissions unless you become owner of /usr/local/<br />
<br />
Then use GRASS GIS 8 and enjoy!<br />
<br />
===== openSUSE =====<br />
<br />
To build GRASS on openSUSE:<br />
<br />
''Application:Geo'' repo to be added (see [https://software.opensuse.org//download.html?project=Application%3AGeo&package=gdal Install package Application:Geo]<br />
<br />
<source lang="bash"><br />
# example for Leap 42 version:<br />
sudo zypper addrepo http://download.opensuse.org/repositories/Application:Geo/openSUSE_Leap_42.3/Application:Geo.repo<br />
sudo zypper refresh<br />
</source><br />
<br />
RPM packages to be installed:<br />
<source lang="bash"><br />
sudo zypper install bison flex freetype2-devel fftw3-devel gcc-c++ \<br />
libgdal-devel libgeos-devel libjpeg-devel libpng-devel libtiff-devel \<br />
man proj libproj-devel readline-devel netcdf-devel ncurses-devel \<br />
mysql-devel postgresql-devel sqlite-devel unixODBC-devel \<br />
tcl-devel tk-devel xorg-x11-Mesa-devel libXmu-devel \<br />
python-numpy python-dateutil python-devel python-opengl \<br />
python-wxWidgets python-xml python-dateutil wxWidgets-devel \<br />
zlib-devel doxygen python-sphinx<br />
</source><br />
<br />
Source code configuration:<br />
<source lang="bash"><br />
./configure \<br />
--enable-largefile \<br />
--with-proj-share=/usr/share/proj \<br />
--with-cxx \<br />
--with-lapack=yes \<br />
--with-x \<br />
--with-motif \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-postgres --with-postgres-includes=/usr/include/pgsql \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql \<br />
--with-fftw \<br />
--with-readline \<br />
--with-netcdf \<br />
--with-curses \<br />
--with-geos \<br />
--with-nls \<br />
--with-sqlite \<br />
--with-freetype \<br />
--with-freetype-includes=/usr/include/freetype2 \<br />
--with-wxwidgets \<br />
--with-odbc \<br />
--with-python<br />
</source><br />
<br />
Then compile with "make [-j2]".<br />
<br />
===== RPM SPEC files =====<br />
* [https://build.opensuse.org/package/show?package=grass&project=Application%3AGeo OpenSuSe]<br />
* [http://pkgs.fedoraproject.org/cgit/rpms/grass.git/tree/grass.spec Fedora]<br />
* ...<br />
<br />
===== Zaurus =====<br />
<br />
... see [http://wiki.debian.org/?GrassGISonZaurus here] for instructions<br />
<br />
==== macOS ====<br />
<br />
Compiling GRASS GIS for macOS is not fundamentally different from for other *nix systems. It is on the contrary quite similar, but what differ is the lack of a default package management system for software GRASS GIS depends on. This leaves the mac user to either: (1) compile the dependencies one-by-one; (2) using the [http://www.kyngchaos.com/software/frameworks/ frameworks] generously shared by William Kyngesburye; (3) compiling with one of the third-party package management systems avaliable; or (4) a combination thereof.<br />
<br />
If you are interested in installing a precompiled version, please check out the [https://grass.osgeo.org/download/software/mac-osx/ official download site].<br />
<br />
To date, maybe the easiest way to compile for Mac is by using [https://github.com/nilason/grass-conda GRASS GIS app build script] which is based on the instructions below for building using Anaconda. It will install dependencies, package and install an app bundle with just a command in Terminal.<br />
<br />
===== Compilation and installation =====<br />
<br />
For more up-to-date instructions please read:<br />
<br />
* [[Compiling on macOS using Anaconda]]<br />
* [[Compiling on macOS using Homebrew]]<br />
* [[Compiling on macOS using MacPorts]]<br />
<br />
===== Legacy instructions =====<br />
<br />
The following compilation and installation instructions are rather outdated as a whole. They do, however, contain parts and snippets that still may be very instructive and useful.<br />
<br />
* [[Compiling on MacOSX]]<br />
* [[Compiling on MacOSX using Fink]]<br />
* [https://web.archive.org/web/20180718005252/http://www.kyngchaos.com/software/frameworks#build_scripts build scripts for dependencies]<br />
<br />
Troubleshooting:<br />
* solving errors at starting GRASS GIS: [[MacOSX GRASS errors]]<br />
<br />
==== FreeBSD / NetBSD ====<br />
<br />
The recommended compiler tools are GCC, GNU make, GNU coreutils (for install), and flex. All are available through the respective package managing tools (pkg_add for FreeBSD and pkgin install for NetBSD) and for recent *BSD versions most likely installed by default.<br />
<br />
GRASS 6.x and GRASS 7 should compile on FreeBSD 8.0 or later and NetBSD 5.0 or later (maybe also on updated NetBSD 4.x).<br />
<br />
It is highly recommended to install GDAL/OGR and PROJ4 first. These libraries and tools are available as [http://www.freebsd.org/ports/ ports for FreeBSD] and [http://www.pkgsrc.org/ packages for NetBSD].<br />
<br />
Optional functionality is listed with ''./configure --help'', and related libraries and tools might need to be installed first.<br />
<br />
You then may need to edit include/Make/Platform.make and set<br />
ICONVLIB = -liconv<br />
<br />
==== Solaris ====<br />
<br />
* ''2008 Oct 15'': see [http://lists.osgeo.org/pipermail/grass-user/2008-October/047093.html this post on the grass mailing list]<br />
<br />
===== 11 SPARC/i86pc =====<br />
<br />
The recommended compiler tools are GCC, GNU make, GNU coreutils (for install), and flex. All are available through the Solaris package manager.<br />
<br />
Most dependencies are available through the Solaris package manager. GDAL and proj4 can either be compiled from source or installed e.g. from [http://www.opencsw.org/ OpenCSW]. If packages are installed from OpenCSW, the linker flags need to be set with<br />
<br />
LDFLAGS="-Wl,-R/opt/csw/lib -L/opt/csw/lib -Wl,-R/opt/csw/gxx/lib -L/opt/csw/gxx/lib"<br />
<br />
See also the [http://www.opencsw.org/use-it/ OpenCSW documentation].<br />
<br />
===== 10 SPARC/i86pc =====<br />
<br />
* get gcc compiler and tools. There are several sources: Solaris Companion CD (SFW pkg, installs in /opt/sfw/), Blastwave ([http://www.blastwave.org], CSW pkg, installs in /opt/csw/) or Sunfreeware ([http://www.sunfreeware.com], SMC pkg, installs in /usr/local/). <br />
Needed Packages from Sunfreeware: SMCbinut, SMCbison, SMCcoreu, SMCfindu, SMCflex, SMCgawk, SMCgcc, SMCgrep, SMCgzip, SMCless, SMClibt, SMClicon, SMCmake, SMCncurs, SMCproj, SMCsed, SMCtar, SMCtcl, SMCtiff, SMCtk, SMCunzip, SMCzlib. <br />
<br />
* compile and install fftw-library ([http://www.fftw.org]). You need to re-compile the library with: <br />
<br />
./configure --with-pic --enable-shared; make ; make install. <br />
<br />
The pre-built packages don't work. <br />
<br />
* compile and install gdal library (see documentation of gdal, [http://www.gdal.org]).<br />
<br />
* compile and install any additional libraries (e. g. GEOS, [http://geos.refractions.net]). <br />
<br />
* set compiler flags and path. e. g.: <br />
<br />
# on ultra-sparc machine:<br />
CFLAGS="-O3 -mcpu=v9"<br />
CXXFLAGS="-O3 -mcpu=v9"<br />
PATH="/usr/local/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/bin:/usr/sbin"<br />
export CFLAGS CXXFLAGS PATH<br />
<br />
Path has to be changed for the packages (Sunfreeware: /usr/local/bin, Solaris Companion: /opt/sfw/bin, Blastwave: /opt/csw/bin). <br />
<br />
* Next configure, e. g.: <br />
<br />
./configure --with-postgres-includes=/usr/include/pgsql/ \<br />
--with-postgres-libs=/usr/lib --with-postgres=yes \<br />
--with-includes=/usr/local/include/ncurses<br />
<br />
If you use n(ew)curses, you have to include the path /usr/local/include/ncurses. <br />
<br />
then:<br />
<br />
make<br />
su<br />
make install<br />
<br />
If the shared libraries are not found at runtime of the modules, use 'crle' to add the paths of the libraries for the dynamic linker, e. g. as root:<br />
<br />
crle -l /lib:/usr/lib:/usr/local/lib:/opt/sfw/lib:/usr/X11/lib<br />
<br />
Be careful not to omit a library path, the system may be unusable if you forget the /lib path.<br />
<br />
==== AIX ====<br />
<br />
A recent [ftp://ftp.gnu.org/gnu/make/ GNU make] (>= 3.81) and GNU coreutils are required. These are available with the [http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/download.html IBM AIX toolbox] or through third-party AIX software repositories, e.g. [http://www.bullfreeware.com/ bullfreeware] and [http://www.perzl.org/aix/ perzl.org]. Note that 'make' does not work, only 'gmake' works. <br />
<br />
General instructions to compile on AIX are e.g. [http://www.perzl.org/aix/index.php?n=Main.Instructions here]<br />
<br />
On AIX, compilation results by default in 32 bit applications and static libraries. The [http://www.ibm.com/developerworks/aix/library/au-gnu.html IBM documentation] explains how to build 64 bit applications and shared libraries with GCC.<br />
<br />
'''GRASS 6: Using the IBM xlc compiler:'''<br />
* ''see [http://thread.gmane.org/gmane.comp.gis.grass.user/32667 this mailing list thread]''<br />
<br />
Mike wrote in 2009:<br />
<br />
After attempting all the suggestions, I finally used<br />
--disable-shared on the configure command, and all but<br />
a handful of modules successfully compiled. I was able to<br />
individually address the ones that failed through Makefile<br />
edits and several small source code/header file edits.<br />
<br />
The environment variables and configure command that worked were:<br />
<pre><br />
# xlc compiler:<br />
export PATH=/usr/local/bin:/opt/freeware/bin:$PATH<br />
export OBJECT_MODE=64<br />
export LIBICONV=/opt/freeware<br />
export CC="xlc_r -q64"<br />
export CFLAGS="-O -qstrict"<br />
export CXX="xlC_r -q64"<br />
export CXXFLAGS="-O -qstrict"<br />
export AR="ar -X64"<br />
export F77="xlf_r -q64"<br />
export CPPFLAGS="-I/afs/isis/pkg/libpng/include -I/usr/local/include -I$LIBICONV/include -I/usr/lpp/X11/include/X11"<br />
export LDFLAGS="-L/usr/local/lib -L$LIBICONV/lib -L/usr/lib -L/usr/X11R6/lib -lc"<br />
<br />
./configure --prefix=/afs/isis/pkg/grass-6.4.0 \<br />
--enable-64bit \<br />
--disable-shared \<br />
--with-includes="/usr/include/fontconfig /usr/include/X11 /usr/include/X11/Xft /usr/include/X11/ext" \<br />
--x-includes=/usr/include/X11 \<br />
--x-libraries=/usr/X11R6/lib \<br />
--with-fftw-includes=/afs/isis/pkg/fftw-3.2.2/include \<br />
--with-fftw-libs=/afs/isis/pkg/fftw-3.2.2/lib \<br />
--with-gdal=/afs/isis/pkg/gdal/bin/gdal-config \<br />
--with-proj-includes=/afs/isis/pkg/proj/include \<br />
--with-proj-libs=/afs/isis/pkg/proj/lib \<br />
--with-proj-share=/afs/isis/pkg/proj/share/proj \<br />
--with-tcltk-includes=/usr/local/include \<br />
--with-tcltk-libs=/usr/local/lib \<br />
--with-opengl-includes=/usr/include/GL<br />
</pre><br />
<br />
'''GRASS 7: Using the IBM xlc compiler:'''<br />
<br />
Get and install (in this order):<br />
* [ftp://ftp.gnu.org/gnu/tar/ GNU tar]<br />
* [ftp://ftp.gnu.org/gnu/make/ GNU make] (>= 3.81)<br />
* [http://www.sqlite.org SQLite]<br />
* [http://trac.osgeo.org/proj/ PROJ.4] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://www.gdal.org GDAL] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://grass.osgeo.org/grass74/source/snapshot/ GRASS GIS 7]<br />
<br />
The environment variables and configure command that worked:<br />
<pre><br />
## AIX 5.x<br />
<br />
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib<br />
# make 'ar' happy<br />
export OBJECT_MODE=64<br />
<br />
PREFIX=$HOME/private/bin<br />
./configure \<br />
--prefix=$PREFIX \<br />
--disable-shared \<br />
--enable-largefile \<br />
--with-cxx \<br />
--with-proj-includes=$PREFIX/include/ \<br />
--with-proj-libs=$PREFIX/lib/ \<br />
--with-proj-share=$PREFIX/share/proj/ \<br />
--with-sqlite \<br />
--with-sqlite-includes=$PREFIX/include/ \<br />
--with-sqlite-libs=$PREFIX/lib/ \<br />
--with-tiff=no \<br />
--with-png=no \<br />
--with-fftw=no \<br />
--with-cairo=no \<br />
--with-freetype=no<br />
</pre><br />
<br />
'''GRASS 7: Using the GNU gcc compiler:'''<br />
<br />
Get and install (in this order):<br />
* if needed, [ftp://ftp.gnu.org/gnu/tar/ GNU tar]<br />
* if needed (the name is often 'gmake' and not 'make') [ftp://ftp.gnu.org/gnu/make/ GNU make] (>= 3.81)<br />
* [http://www.sqlite.org SQLite]<br />
* [http://trac.osgeo.org/proj/ PROJ.4] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://www.gdal.org GDAL] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://grass.osgeo.org/grass74/source/snapshot/ GRASS GIS 7]<br />
<br />
The environment variables and configure command that worked for AIX 5.x:<br />
<pre><br />
## AIX 5.x<br />
<br />
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib<br />
# make 'ar' happy<br />
export OBJECT_MODE=64<br />
<br />
PREFIX=$HOME/private/bin<br />
CFLAGS='-ansi -D_ALL_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline=' ./configure \<br />
--prefix=$PREFIX \<br />
--disable-shared \<br />
--enable-largefile \<br />
--with-cxx \<br />
--with-proj-includes=$PREFIX/include/ \<br />
--with-proj-libs=$PREFIX/lib/ \<br />
--with-proj-share=$PREFIX/share/proj/ \<br />
--with-sqlite \<br />
--with-sqlite-includes=$PREFIX/include/ \<br />
--with-sqlite-libs=$PREFIX/lib/ \<br />
--with-tiff=no \<br />
--with-png=no \<br />
--with-fftw=no \<br />
--with-cairo=no \<br />
--with-freetype=no<br />
</pre><br />
<br />
The environment variables and configure command that worked for AIX 7.x:<br />
<pre><br />
## AIX 7.x<br />
export CC="gcc"<br />
export CXX="g++"<br />
PREFIX=$HOME/bin<br />
<br />
LDFLAGS="-Wl,-bsvr4,-R,/opt/freeware/lib -L/opt/freeware/lib" CPPFLAGS="-I/opt/freeware/include" ./configure \<br />
--prefix=$PREFIX \<br />
--enable-largefile \<br />
--enable-shared \<br />
--with-includes=/opt/freeware/include --with-libs=/opt/freeware/lib \<br />
--with-cxx \<br />
--with-proj-includes=$PREFIX/include/ \<br />
--with-proj-libs=$PREFIX/lib/ \<br />
--with-proj-share=$PREFIX/share/proj/ \<br />
--with-gdal=$PREFIX/bin/gdal-config \<br />
--with-sqlite \<br />
--with-sqlite-libs=$PREFIX/lib --with-sqlite-includes=$PREFIX/include \<br />
--with-png=no \<br />
--with-tiff=no \<br />
--with-fftw=no \<br />
--with-cairo=no \<br />
--with-opengl=no \<br />
--with-freetype=no<br />
</pre><br />
<br />
==== MS-Windows ====<br />
<br />
===== MS-Windows/Cygwin =====<br />
<br />
* See the [[Cygwin]] wiki pages<br />
<br />
===== MS-Windows/native =====<br />
<br />
====== Compile ======<br />
<br />
* [http://trac.osgeo.org/grass/wiki/CompileOnWindows GRASS Windows Native Binary Building Guide] (GRASS 6.4.x + 7.x)<br />
* <strike>[http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html GRASS Windows Native Binary Building Guide] (GRASS 6.3.x) </strike><br />
* See/adapt [http://blog.qgis.org/node/124 idea] for unattended install of QGIS (et al) from [http://trac.osgeo.org/osgeo4w/ OSGeo4W] from the QuantumGIS Blog.<br />
<br />
See also [[WinGRASS Current Status]] for latest updates.<br />
<br />
=== Common problems and solutions ===<br />
<br />
During compilation, error can occur if certain packages are not installed. Here a list of problems with solution:<br />
<br />
* error: X11/Xlib.h: No such file or directory<br />
** this suggests that you don't have the X headers installed<br />
** Solution: Install the libx11-dev package<br />
<br />
* error: g.list: error while loading shared libraries: libgdal1.6.0.so.1: cannot open shared object file: No such file or directory<br />
** this error appears in the shell right after the user clicks GUI's "Start GRASS" button. The GUI shows an error about geographic extent and gets closed afterwards.<br />
** It happens when you launch bin.i686 executable on 64bit system. Be careful and choose the right architecture.<br />
<br />
* error: lib/python/ctypes<br />
** This error appears during the compilation: <code>free(): invalid pointer Aborted (core dumped)</code><br />
** It happens when you have multiple <code>libproj</code> versions on your system (check it with command <code>ldd PATH_TO_GRASS_INSTALL/lib/libgrass_gproj.so | grep proj</code> - when this is not your problem, you should obtain exactly one result)<br />
** Solution: Try to reinstall <code>libproj-dev</code> and <code>proj-data</code><br />
<br />
=== Static compilation ===<br />
<br />
In order to get static rather than dynamically linked binaries, configure like this:<br />
<br />
./configure --disable-shared --enable-static<br />
<br />
This will however break the wxGUI and GRASS 7 completely because "ctypes" wants to link against shared libs, or there is something in the static libs that "ctypes" does not like.<br />
<br />
=== Optimization ===<br />
<br />
GCC and other compilers support [http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Optimize-Options.html#Optimize-Options optimization]<br />
<br />
If you would like to set compiler optimisations, for a possibly faster binary, type (don't enter a ";" anywhere):<br />
<br />
CFLAGS=-O ./configure<br />
or,<br />
setenv CFLAGS -O<br />
./configure<br />
<br />
whichever works on your shell. Use -O2 instead of -O if your compiler supports this (note: O is the letter, not zero). Using the "gcc" compiler, you can also specify processor specific flags (examples, please suggest better settings to us):<br />
<br />
CFLAGS="-mcpu=athlon -O2" # AMD Athlon processor with code optimisations<br />
CFLAGS="-march=amdfam10" # AMD Phenom II X4 64bit processor with gcc >=4.3<br />
CFLAGS="-mcpu=pentium" # Intel Pentium processor<br />
CFLAGS="-mcpu=pentium4" # Intel Pentium4 processor<br />
CFLAGS="-O2 -msse -msse2 -mfpmath=sse -minline-all-stringops" # Intel XEON 64bit processor<br />
CFLAGS="-mtune=nocona -m64 -minline-all-stringops" # Intel Pentium 64bit processor<br />
<br />
<br />
To find out optional CFLAGS for your platform, enter:<br />
gcc -dumpspecs<br />
<br />
See also: http://gcc.gnu.org/<br />
<br />
A real fast GRASS version (and small binaries) will be created with LDFLAGS set to "stripping" (but this disables debugging):<br />
<br />
CFLAGS="-O2 -mcpu=<cpu_see_above> -Wall" LDFLAGS="-s" ./configure<br />
<br />
=== Configure options and their meanings ===<br />
<br />
For configure there are many options and some GRASS modules are built only if some options are set. Here are listed common configuration options with short explanation.<br />
<br />
* --prefix=/path - Sets path where GRASS will be installed. GRASS will reside in /path/grass-version.<br />
* --enable-largefile - Enables large (>2Gb on 32bit systems) support. For current large file support status look at [[Large File Support]] page.<br />
* --with-cxx - Enables compilation of C++ code. Required for r.terraflow module.<br />
* --with-readline - Enables readline support. If readline is enabled, you can use its history/editing facilities when entering r.mapcalc expressions on stdin.<br />
* --with-glw - Enables GLw support. The GLw library provides OpenGL "canvas" widgets for Athena and Motif. <br />
<br />
That switch is unnecessary for normal compilation. It's only<br />
required for r3.showdspf, which isn't normally built; if you <br />
want it, you have build it manually <br />
(e.g. "make -C raster3d/r3.showdspf").<br />
As similar functionality is now provided by NVIZ, r3.showdspf<br />
is deprecated.<br />
r3.showdspf uses the Motif widget (so you also need a <br />
Motif library, e.g. Lesstif or OpenMotif).<br />
[http://grass.itc.it/pipermail/grassuser/2006-December/037475.html Glynn Clements at GRASS-user mailing list]<br />
<br />
=== Parallelized compilation on multi-core CPUs ===<br />
<br />
You can dramatically accelerate the compilation of the GRASS code with the -j flag of "make" if you have a multi-core CPU system. This determines the maximum number of jobs to have running at once, so cores don't have to sit idle waiting for jobs on other cores to complete. A good rule of thumb for this value is <tt>number_of_cores * 1.5</tt>, but note that setting any higher than the actual number of cores will only affect the timing slightly. For example, on a dual-core processor:<br />
make -j 4<br />
<br />
<!-- CFLAGS="-pipe" doesn't seem to help much --><br />
<br />
== GRASS-GDAL plugin ==<br />
<br />
* see [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]]<br />
<br />
== Addons ==<br />
<br />
Please note that the installation of [[AddOns/GRASS_6|Addons]] can be easily done with the {{cmd|g.extension}} manager. The compile instructions below are aiming at own development.<br />
<br />
=== Compiled modules ===<br />
<br />
This is the general way which works for C modules as well as scripts (Python or Shell/Bash modules) which has HTML documentation.<br />
<br />
'''Requirements:'''<br />
<br />
Either:<br />
* a binary GRASS package, or<br />
* source code which has been prepared with:<br />
./configure [opionally flags]<br />
make libs<br />
<br />
Each of the [[GRASS_AddOns|addon]] modules should come with a Makefile. To compile it, just run:<br />
make MODULE_TOPDIR=/path/to/grass64/<br />
<br />
Note that the <tt>/path/to/grass64</tt> has to be absolute, not relative.<br />
<br />
If using Bash it may be useful to set that up as an alias:<br />
alias gmake64='make MODULE_TOPDIR=/path/to/grass64/'<br />
<br />
Installation (perhaps requires "sudo"):<br />
make MODULE_TOPDIR=/path/to/grass64/ install<br />
<br />
Note: Compiled addons may require a re-compilation if you changed/updated your GRASS standard binaries.<br />
<br />
==== If binary comes with a -dev package ====<br />
<br />
''(work in progress, this text states how it eventually will be :)''<br />
Nowadays one does not need to the source code, nor compiling GRASS by oneself to be able to add add-ons. On Debian, you can just install the grass-dev package and then run:<br />
make MODULE_TOPDIR=/usr/lib/grass64/ INST_DIR=/usr/lib/grass64/<br />
<br />
The grass-dev package essentially provides GRASS's <tt>include</tt> header files and Make configuration files.<br />
<br />
=== Scripts ===<br />
<br />
If the addon module is a script, it is sufficient to copy it into the (GRASS binaries) path somewhere. Alternatively, install addons into a separate GRASS addons binaries/scripts directory which is easier to maintain. It avoids getting clobbered every time you reinstall GRASS. To use these separately stored scripts, set and export the GRASS_ADDON_PATH environment variable before starting GRASS and it will automatically be added to the module search path (see the {{cmd|variables}} help page). To simplify this, do for example:<br />
<br />
# add in $HOME/.bashrc:<br />
GRASS_ADDON_PATH=/usr/local/grass/addons/<br />
export GRASS_ADDON_PATH<br />
<br />
Make sure that the script is executable, then just call it in GRASS typing the filename. Python scripts need to be called writing the extension as well, like:<br />
<br />
GRASS 6.5.svn (spearfish60):~ > v.krige.py<br />
<br />
[[Category:Development]]<br />
[[Category:Documentation]]<br />
[[Category:Installation]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Parallelizing_Scripts&diff=27358Parallelizing Scripts2023-12-27T19:50:01Z<p>Neteler: fix broken URLs</p>
<hr />
<div>=== Bourne shell script ===<br />
* '''Poor-man's multithreading''' using Bourne shell script & backgrounding. WARNING: not all GRASS modules and scripts are safe to have other things happening in the same mapset while they are running. Try at your own risk after performing a suitable safety audit. e.g. Make sure {{cmd|g.region}} is not run, externally changing the region settings.<br />
<br />
Example 1:<br />
<source lang="bash"><br />
# note: pgrep may only be available on Linux<br />
for map in `g.mlist rast pat=stress*.[uv]` ; do<br />
if [ `pgrep -c r.surf.nnbathy` -lt 5 ] ; then<br />
r.surf.nnbathy in="$map" out="$map.nn" &<br />
else<br />
r.surf.nnbathy in="$map" out="$map.nn"<br />
fi<br />
done<br />
wait<br />
</source><br />
<br />
Example 2:<br />
<source lang="bash"><br />
### r.sun mode 1 loop ###<br />
SUNRISE=7.67<br />
SUNSET=16.33<br />
STEP=0.01<br />
# | wc -l 867<br />
<br />
if [ -z "$WORKERS" ] ; then<br />
WORKERS=4<br />
fi<br />
<br />
DAY=355<br />
for TIME in `seq $SUNRISE $STEP $SUNSET` ; do<br />
echo "time=$TIME"<br />
CMD="r.sun -s elevin=gauss day=$DAY time=$TIME \<br />
beam_rad=rad1_test.${DAY}_${TIME}_beam --quiet"<br />
<br />
# poor man's multi-threading for a multi-core CPU<br />
MODULUS=`echo "$TIME $STEP $WORKERS" | awk '{print $1 % ($2 * $3)}'`<br />
if [ "$MODULUS" = "$STEP" ] || [ "$TIME" = "$SUNSET" ] ; then<br />
# stall to let the background jobs finish<br />
$CMD<br />
sleep 2<br />
wait<br />
#while [ `pgrep -c r.sun` -ne 0 ] ; do<br />
# sleep 5<br />
#done<br />
else<br />
$CMD &<br />
fi<br />
done<br />
wait # wait for background jobs to finish to avoid race conditions<br />
</source><br />
<br />
* This approach has been used in the {{cmd|r3.in.xyz}} script.<br />
* Another example using r.sun Mode 2 can be found on the [[r.sun]] wiki page.<br />
* See the {{cmd|i.landsat.rgb}} and {{cmd|i.oif}} examples.<br />
<br />
<br />
Backgrounding code which sets environment variables with `eval` requires the use of grouping within ()s:<br />
<source lang="bash"><br />
eval `(<br />
r.univar -ge map="$RED" percentile=95 | grep '^percentile_' | sed -e 's/^/R_/' &<br />
r.univar -ge map="$GREEN" percentile=95 | grep '^percentile_' | sed -e 's/^/G_/' &<br />
r.univar -ge map="$BLUE" percentile=95 | grep '^percentile_' | sed -e 's/^/B_/'<br />
wait<br />
)`<br />
</source><br />
<br />
=== Python ===<br />
<br />
* Due to the "GIL" in Python 2.x-3.0, pure python will only run on a single core, even when multi-threaded. All multithreading schemes & modules for (pure) Python are therefore wrappers around multiple system processes, which are a lot more expensive than threads to create and destroy. Thus it is more efficient to create large high-level Python 'threads' (processes) than to bury them deep inside of a loop.<br />
<br />
Example of multiprocessing at the GRASS module level:<br />
<br />
Similar to the Bourne shell example above, but using the '''subprocess''' python module.<br />
The {{cmd|i.oif}} script in GRASS7 is using this method.<br />
<br />
<source lang="python"><br />
bands = [1,2,3,4,5,7]<br />
<br />
# run all bands in parallel<br />
if "WORKERS" in os.environ:<br />
workers = int(os.environ["WORKERS"])<br />
else:<br />
workers = 6<br />
<br />
proc = {}<br />
pout = {}<br />
<br />
# spawn jobs in the background<br />
for band in bands:<br />
grass.debug("band %d, <%s> %% %d" % (band, image[band], band % workers))<br />
proc[band] = grass.pipe_command('r.univar', flags = 'g', map = image[band])<br />
if band % workers is 0:<br />
# wait for the ones launched so far to finish<br />
for bandp in bands[:band]:<br />
if not proc[bandp].stdout.closed:<br />
pout[bandp] = proc[bandp].communicate()[0]<br />
proc[bandp].wait()<br />
<br />
# wait for jobs to finish, collect the output<br />
for band in bands:<br />
if not proc[band].stdout.closed:<br />
pout[band] = proc[band].communicate()[0]<br />
proc[band].wait()<br />
<br />
# parse the results<br />
for band in bands:<br />
kv = grass.parse_key_val(pout[band])<br />
stddev[band] = float(kv['stddev'])<br />
</source><br />
<br />
<br />
This can also be accomplished fairly simply by using tracking the number of workers available and using grass.start_command as long as another job can be performed:<br />
<br />
<source lang="python"><br />
import os<br />
import multiprocessing as multi<br />
<br />
import grass.script as grass<br />
<br />
# Find number of workers that can be used on system. This variable could <br />
# also be set manually.<br />
workers = multi.cpu_count()<br />
# This is only a set of examples for r.slope.aspect jobs where the maps are<br />
# named serially.<br />
jobs = range(20)<br />
<br />
# Check if workers are already being used<br />
if workers is 1 and "WORKERS" in os.environ:<br />
workers = int(os.environ["WORKERS"])<br />
if workers < 1:<br />
workers = 1<br />
<br />
# Initialize process dictionary<br />
proc = {}<br />
<br />
# Loop over jobs<br />
for i in range(jobs):<br />
# Insert job into dictinoary to keep track of it<br />
proc[i] = grass.start_command('r.slope.aspect',<br />
elevation='elev_' + str(i),<br />
slope='slope_' + str(i))<br />
# If the workers are used up, wait for all of them from the last group to<br />
# finish.<br />
if i % workers is 0:<br />
for j in range(workers):<br />
proc.[i - j].wait()<br />
<br />
# Make sure all workers are finished.<br />
for i in range(jobs):<br />
if proc[i].wait() is not 0:<br />
grass.fatal(_('Problem running analysis on evel_' + str(i) + '.')<br />
</source><br />
<br />
=== GNU Parallel ===<br />
* [https://www.gnu.org/software/parallel/ GNU Parallel] is an advanced version of {{wikipedia|xargs}} which makes it easy to write parallel shell scripts. On many Linux systems GNU parallel defaults to the "--tollef" style syntax. Adding the "--gnu" flag will cause GNU parallel to revert to native syntax. See also the unrelated C "parallel" program which comes with the Linux "moreutils" package. It is tighter but less featureful than GNU Parallel.<br />
<br />
<source lang="bash"><br />
### r.sun mode 1 loop ###<br />
SUNRISE=7.67<br />
SUNSET=16.33<br />
STEP=0.01<br />
# | wc -l 867<br />
<br />
DAY=355<br />
<br />
seq $SUNRISE $STEP $SUNSET | parallel -j+0 r.sun -s elevin=gauss day=$DAY \<br />
time={} beam_rad=rad1_test.${DAY}_{}_beam --quiet<br />
</source><br />
<br />
Another example using the standard GNU parallel syntax. The "-k" flag will ensure that data are written to the output file in the same order than input maps are processed.<br />
<source lang="bash"><br />
# extract raster data from a time-series stack at named vector location<br />
t.rast.list -s my_raster_stack columns="id" | parallel -k --gnu r.what map="{}" points=my_vector_map > output.dat<br />
</source><br />
<br />
When tasks are limited by disk I/O parallel processing may be counter productive. A I/O monitoring tool such as [http://dag.wiee.rs/home-made/dstat/ dstat] can help diagnose cases where the use of GNU parallel fails to saturate all available CPU cores. A solid state disk can usually help cases where dstat reports a "wait" value that is larger than about 10%.<br />
<br />
GNU Parallel can also distribute work to other computers, see the video on how:<br />
: https://www.youtube.com/watch?v=LlXDtd_pRaY<br />
<br />
=== xargs ===<br />
* {{wikipedia|xargs}} can be told to limit itself to a certain number of processes at once. The r.sun example is almost exactly as with GNU Parallel, except for `-P $CORES -n 1` instead of `-j+0`.<br />
<br />
For example, convert a large number of Raster3D maps into 2D rasters:<br />
<source lang="bash"><br />
NUM_CORES=6<br />
g.mlist rast3d | xargs -P $NUM_CORES -n 1 -I{} \<br />
r3.to.rast -r in={} out={} --quiet<br />
</source><br />
<br />
For another example, here we spit apart a PDF and convert each page to a PNG image:<br />
<br />
<source lang="bash"><br />
pdftk pdfmovie.pdf burst<br />
NUM_CORES=6<br />
ls -1 pg_*.pdf | xargs -P $NUM_CORES -n 1 -I{} \<br />
sh -c "pdftoppm {} | pnmcut -width 1280 -height 1024 -left 0 -top 0 | \<br />
pnmtopng > \`basename {} .pdf\`.png"<br />
</source><br />
<br />
== See also ==<br />
<br />
* {{AddonCmd|r.mapcalc.tiled}}: Runs {{cmd|r.mapcalc}} in parallel over tiles <br />
* {{AddonCmd|r.texture.tiled}}: Runs {{cmd|r.texture}} in parallel over tiles<br />
<br />
[[Category: Development]]<br />
[[Category: Parallelization]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Parallel_GRASS_jobs&diff=27357Parallel GRASS jobs2023-12-27T19:43:52Z<p>Neteler: fix broken URLs</p>
<hr />
<div>== Parallel GRASS jobs ==<br />
<br />
The idea of parallel GRASS GIS jobs is to speed up the computation.<br />
<br />
=== Background ===<br />
<br />
This presentation from 2022 is a "must see":<br />
<br />
'''[https://htmlpreview.github.io/?https://github.com/petrasovaa/FUTURES-CONUS-talk/blob/main/foss4g2022.html Tips for parallelization in GRASS GIS]'''<br />
<br />
This you should know about GRASS' behaviour concerning multiple jobs:<br />
* You can run '''multiple processes''' in '''multiple locations''' ([https://grass.osgeo.org/grass-stable/manuals/helptext.html what's that?]). ''Peaceful coexistence.''<br />
* You can run multiple processes in the same mapset, but only if the region is untouched. If you are unsure, it's recommended to launch each job in its own mapset within the location.<br />
* You can run '''multiple processes''' in the '''same location''', but in '''different mapsets'''. ''Peaceful coexistence.''<br />
<br />
=== Approaches ===<br />
<br />
See also the [[Parallelizing Scripts]] wiki page<br />
<br />
== File locking ==<br />
<br />
GRASS doesn't perform any locking on the files within a GRASS<br />
database, so the user may end up with one process reading a file while<br />
another process is in the middle of writing it. The most problematic<br />
case is the WIND file, which contains the [[current region]], although<br />
there are others.<br />
<br />
If a user wants to run multiple commands concurrently, steps need to <br />
be taken to ensure that this type of conflict doesn't happen. For the<br />
current region, the user can use the WIND_OVERRIDE environment variable to<br />
specify a named region which should be used instead of the WIND file.<br />
<br />
Or the user can use the GRASS_REGION environment variable to specify the<br />
region parameters (the syntax is the same as the WIND file, but with<br />
newlines replaced with semicolons). With this approach, the region can<br />
only be read, not modified.<br />
<br />
Problems can also arise if the user reads files from another mapset while<br />
another session is modifying those files. The WIND file isn't an issue<br />
here, nor are the files containing raster data (which are updated<br />
atomically), but the various support files may be.<br />
<br />
See below for ways around these limitations.<br />
<br />
== Working with tiles ==<br />
<br />
Huge map reprojection example:<br />
<br />
'''Q:''' I'd like to try splitting a large raster into small chunks and then projecting each one separately, sending the project command to the background. The problem is that, if the GRASS command changes the region settings, things might not work.<br />
<br />
'''A:''' {{cmd|r.proj}} doesn't change the region.<br />
<br />
Processing the map in chunks requires setting a different region for<br />
each command. That can be done by creating named regions and using the<br />
WIND_OVERRIDE environment variable, e.g.:<br />
<br />
<source lang="bash"><br />
g.region ... save=region1<br />
g.region ... save=region2<br />
...<br />
WIND_OVERRIDE=region1 r.proj ... &<br />
WIND_OVERRIDE=region2 r.proj ... &<br />
...<br />
</source><br />
<br />
(for python see the grass.use_temp_region() function)<br />
<br />
The main factor which is likely to affect parallelism is the fact that the processes won't share their caches, so there'll be some degree of inefficiency if there's substantial overlap between the source areas for the processes.<br />
<br />
If you have more than one such map to project, processing entire maps in parallel might be a better choice (so that you get N maps projected in 10 hours rather than 1 map in 10/N hours).<br />
<br />
== Parallelized code ==<br />
<br />
=== OpenMP ===<br />
<br />
Good for a single system with a multi-core CPU.<br />
<br />
Configure GRASS 7 with:<br />
./configure --with-openmp<br />
<br />
==== GPDE using OpenMP ====<br />
<br />
The only parallelized library in GRASS >=6.3 is GRASS Partial Differential Equations Library (GPDE) and the gmath library in GRASS 7. Read more in [[OpenMP]].<br />
<br />
=== Python ===<br />
<br />
[http://grass.osgeo.org/grass73/manuals/libpython/pygrass.modules.interface.html?highlight=parallelmodulequeue#pygrass.modules.interface.module.ParallelModuleQueue PyGRASS ParallelModuleQueue]<br />
<br />
=== pthreads ===<br />
<br />
Note: only used in the r.mapcalc ''parser''!<br />
<br />
Good for a single system with a multi-core CPU.<br />
<br />
Configure GRASS 7 with:<br />
./configure --with-pthread<br />
<br />
The ''parser'' of {{cmd|r.mapcalc}} in GRASS 7 has been parallelized using GNU {{wikipedia|pthreads}}. The computation itself is executed serially.<br />
<br />
=== Bourne and Python Scripts ===<br />
<br />
Good for a single system with a multi-core CPU.<br />
<br />
Often very easy & can be done without modification to the main source code.<br />
<br />
* See the [[Parallelizing Scripts]] wiki page<br />
<br />
=== OpenMPI ===<br />
<br />
Good for a multi-system cluster connected by a fast network.<br />
<br />
The {{AddonCmd|GIPE}} ''i.vi.mpi'' addon module has been created as a MPI ({{wikipedia|Message Passing Interface}}) implementation of the {{AddonCmd|GIPE}} ''i.vi'' addon module.<br />
* See also the [[Agriculture and HPC]] wiki page.<br />
<br />
=== MPI Programming ===<br />
<br />
There is a sample implementation at module level in [https://github.com/OSGeo/grass-addons/tree/grass8/src/imagery/i.vi.mpi i.vi.mpi]<br />
<br />
=== GPU Programming ===<br />
<br />
Good for certain kinds of calculations (e.g. ray-tracing) on a single system with a fast graphics card.<br />
<br />
There is a version of the {{cmd|r.sun}} module which has been modified to use {{wikipedia|OpenCL}}. (works; still experimental)<br />
<br />
* See [[GPU]]<br />
<br />
Configure GRASS GIS with:<br />
./configure --with-opencl<br />
<br />
== Cluster and Grid computing ==<br />
<br />
A cluster or grid computing system consists of a number of computers that are tightly coupled together. The manager or master controls the utilization of compute nodes.<br />
<br />
=== Job scheduler ===<br />
<br />
Common job schedulers are [https://slurm.schedmd.com/ SLURM], [http://www.adaptivecomputing.com/products/open-source/torque/ TORQUE], [http://www.pbspro.org/ PBS], [https://arc.liv.ac.uk/trac/SGE Son of Grid Engine], and [https://kubernetes.io/ kubernetes]<br />
<br />
See also [https://slurm.schedmd.com/rosetta.html Rosetta Stone of Workload Managers]<br />
<br />
A job consists of tasks, e.g. processing of a single raster map in a time series of many raster maps. Jobs are assigned to a queue and started as soon as a slot in the queue is free. Jobs are removed from the queue once they finished.<br />
<br />
=== GRASS on a cluster ===<br />
<br />
If you want to launch several GRASS jobs in parallel, you might consider to launch each job in its own mapset.<br />
<br />
* set up chunks of data to be processed (temporal or spatial, temporal chunks are usually easier to handle)<br />
* write a script with the actual processing of one chunk<br />
* write a script that initializes GRASS, creates a unique mapset, executes the script with the actual processing, and copies the results to a common mapset<br />
* add that script as a task to a job, create one job for each data chunk<br />
<br />
The general concept is to create a script that <br />
<br />
# creates a unique temporary mapset<br />
# creates a unique temporary GISRC file for this mapset<br />
# does the processing in this mapset<br />
# changes to the target mapset by updating the GISRC file, verify with g.gisenv<br />
# copies results from the temporary mapset to the target mapset<br />
# deletes the temporary mapset and GISRC file<br />
<br />
Such a script should not call grassXY and must be executable outside GRASS, because it is establishing a GRASS session, performing some processing, and closing the GRASS session, all by itself. See also [[GRASS_and_Shell|GRASS and Shell]].<br />
<br />
Such a script will take arguments to specify the particular data to be processed.<br />
<br />
A job specification for an HPC job scheduler would then contain this script with specific arguments.<br />
<br />
The common bottleneck when using GRASS on a cluster is often disk I/O. Try to start the jobs with nice/ionice to reduce strain on the storage devices.<br />
<br />
== Cloud computing ==<br />
<br />
GRASS GIS is running in the cloud as web processing service backend. Have a look at:<br />
<br />
{{YouTube|jg2pb_Xjq8Y|desc=GRASS 7 in the cloud (by Sören Gebbert)}}<br />
<br />
This Open Cloud GIS has been set up in a private Amazon compatible cloud environment using:<br />
* Ubuntu 10.04 LTS and 10.10 cloud server edition<br />
* Eucalyptus Cloud<br />
* GRASS GIS 7 latest svn<br />
* PyWPS latest svn<br />
* wps-grass-bridge latest svn<br />
* QGIS 1.7 with a modified QWPS plugin<br />
<br />
For latest development, visit: https://github.com/actinia-org/actinia-core<br />
<br />
== GRASS GIS on VPS ==<br />
<br />
Instructions to run GRASS GIS on a commercial VPS to do some memory-intensive operations:<br />
<br />
https://plantarum.ca/2014/08/19/medium-performance-cluster-computing/<br />
<br />
== Hints for NFS users ==<br />
* AVOID script forking on the cluster (but inclusion via ". script.sh" works ok). This means that the GRASS_BATCH_JOB approach is prone to '''fail'''. It is highly recommended to simply set a series of environmental variables to define the GRASS session, see [[GRASS_and_Shell#Automated_batch_jobs:_Setting_the_GRASS_environmental_variables|here]] how to do that.<br />
* be careful with concurrent file writing (use "lockfile" locking, the lockfile command is provided by [http://www.procmail.org/ procmail]);<br />
* store as much temporary data as possible (even the final maps) on the local blade disks if you have.<br />
* finally collect all results from local blade disks *after* the parallel job execution in a sequential collector job (I am writing that now) to not kill NFS. For example, Grid Engine offers a "hold" function to only execute the collector job after having done the rest.<br />
* If all else fails, and the I/O load is not too great, consider using {{wikipedia|sshfs}} with ssh passkeys instead of NFS.<br />
* In some situations it is necessary to preserve the same directory structure on all nodes, and symlinks are a nice way to do that, but some (closed source 3rd party which will remain nameless) software insists on expanding symlinks. In this situation the [http://code.google.com/p/bindfs/ bindfs] FUSE extension can help. It is safer to use than "mount" binds, and you don't have to be root to set them up. As with ''sshfs'' there is a performance penalty so it may not be appropriate in high I/O situations.<br />
<br />
== Error: Too many open files ==<br />
<br />
When working with long time series and {{cmd|r.series}} starts to complain that files are missing/not readable or the message<br />
Too many open files<br />
<br />
For a solution, see [[Large_raster_data_processing#Number_of_open_files_limitation]]<br />
<br />
== Misc Tips & Tricks ==<br />
See the poor-man's multi-processing script on the [[Parallelizing Scripts]] wiki page. This approach has been used in the {{cmd|r3.in.xyz}} script.<br />
<br />
== Workshop on Parallelization ==<br />
<br />
Haedrich, C., Petrasova, A. Parallelization for big EO data processing, OpenGeoHub Summer School 2023<br />
* https://doi.org/10.5446/63123<br />
<br />
'''Schedule'''<br />
<br />
Session 1<br />
* [Slides] Introduction to Parallelization, GRASS GIS and Python<br />
* [Lab] Introduction to Parallelization with GRASS GIS and Python Notebook<br />
<br />
Session 2<br />
* [Lab] Parallelization Case Study: Urban Growth Modeling<br />
<br />
Jupyter Notebook:<br />
* https://github.com/ncsu-geoforall-lab/opengeohub-2023<br />
** https://github.com/ncsu-geoforall-lab/opengeohub-2023/blob/main/01_intro_to_GRASS_parallelization.ipynb<br />
<br />
== See also ==<br />
<br />
This Wiki:<br />
* [[GRASS_and_Shell#Automated_batch_jobs:_Setting_the_GRASS_environmental_variables|GRASS batch jobs]] (by settings env. variables)<br />
* The [[OpenMP]] wiki page.<br />
* The [[Parallelizing Scripts]] wiki page.<br />
* [[GPU]] computing<br />
<br />
Elsewhere:<br />
* [https://neteler.org/blog/building-a-cluster-for-grass-gis-and-other-software-from-the-osgeo-stack/ Building a cluster for GRASS GIS and other software from the OSGeo stack]<br />
* [https://research.csc.fi/geocomputing Using supercomputers for spatial analysis]<br />
* [https://github.com/csc-training/geocomputing/tree/master/grass GRASS batch job and parallelization examples for a supercomputer with SLURM]<br />
<br />
[[Category:Parallelization]]<br />
[[Category: massive data analysis]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Budget_2024&diff=27352GRASS GIS Budget 20242023-12-17T16:03:41Z<p>Neteler: Categories added</p>
<hr />
<div>== Income ==<br />
<br />
{| class="wikitable"<br />
! Item !! USD !! EUR !! Notes<br />
|-<br />
| Request to OSGeo (general budget) || 5,000.00 || 4,585.76 || OSGeo Projects budget<br />
|-<br />
| Expected Donations || 550.00 || 504.43 || Based on average from 2020-2022<br />
|-<br />
| Total income || 5,550.00 || 5,090.20 || <br />
|}<br />
<br />
== Expenses ==<br />
<br />
{| class="wikitable"<br />
! Item !! USD !! EUR !! Notes<br />
|-<br />
| '''Events, Sprints, Travel''' || || || <br />
|-<br />
| Sprint || 4,100.00 || 3,760.32 || Community contributions to the sprint through the budget<br />
|-<br />
| PSC rep at AGM + Travel to OSGeo Sprint || 2,200.00 || 2,017.74 || Multiple travels on a continent or one travel to a different continent<br />
|-<br />
| Subtotal || 6,300.00 || 5,778.06 || <br />
|-<br />
| || || || <br />
|-<br />
| '''Student Grants''' || || || <br />
|-<br />
| Student grants || 4,000.00 || 3,668.61 || See Student Grants [https://grasswiki.osgeo.org/wiki/Student_Grants wiki] page, 4 grants offered<br />
|-<br />
| Subtotal || 4,000.00 || 3,668.61 || <br />
|-<br />
| || || || <br />
|-<br />
| '''Marketing''' || || || <br />
|-<br />
| T-shirts, swag for users, conferences, ... || 400.00 || 366.86 || Community members can request for local or global events<br />
|-<br />
| Stickers and magnets (as above) || 400.00 || 366.86 || Community members can request for local or global events<br />
|-<br />
| Subtotal || 800.00 || 733.72 || <br />
|-<br />
| || || || <br />
|-<br />
| Total expenses || 11,100.00 || 10,180.39 || <br />
|}<br />
<br />
== Balance ==<br />
<br />
{| class="wikitable"<br />
! Item !! USD !! EUR !! Notes<br />
|-<br />
| Year balance (income - expenses) || -5,550.00 || -5,090.20 || If negative, it needs to be covered by additional fundraising and surplus.<br />
|-<br />
| Balance in Open Collective || 6,149.03 || 5,639.60 || State from December 15, 2023<br />
|-<br />
| EOY balance (year balance + surplus) || 599.03 || 549.40 || <br />
|}<br />
<br />
Edits: Ask the treasurer about editing this page.<br />
<br />
[[Category: Budget]]<br />
[[Category: 2024]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Hyperion&diff=27337Hyperion2023-12-03T13:28:41Z<p>Neteler: use generic manual URL; add categories</p>
<hr />
<div>== Hyperion Hyperspectral Data ==<br />
[[File:eo1_satellite.jpg]][[File:HyperionR50G35B100.png||100px]]<br />
<br />
=== EO-1 platform ===<br />
The NASA EO-1 satellite was launched on November 21, 2000 as part of a one-year technology validation/demonstration mission ([https://www.usgs.gov/centers/eros/science/earth-observing-1-eo-1 EO-1 Mission Page]). <br />
<br />
The mission was to use the Advanced Land Imager (ALI) instrument on EO-1 to validate and demonstrate technology for the Landsat Data Continuity Mission (LDCM). <br />
<br />
The original EO-1 Mission was successfully completed in November 2001. As the end of the Mission approached, the remote sensing research and scientific communities expressed high interest in continued acquisition of image data from EO-1. Based on this user interest and willingness to assist in funding continued operations, an agreement was reached between NASA and the USGS to allow continuation of the EO-1 Program as an Extended Mission.<br />
<br />
On February 22nd, 2017, the Earth-Observing One (EO-1) satellite was decommissioned.<br />
<br />
=== Sensors ===<br />
* Advanced Land Imager (ALI)<br />
* Hyperion<br />
* Linear Etalon Imaging Spectrometer Array (LEISA) Atmospheric Corrector (LAC)<br />
<br />
The EO-1 Extended Mission was chartered to collect and distribute ALI multispectral and Hyperion hyperspectral products in response to Data Acquisition Requests (DARs). Under the Extended Mission provisions, image data acquired by EO-1 were archived and distributed by the USGS Center for Earth Resources Observation and Science (EROS) and placed in the public domain.<br />
<br />
== Hyperion Data Download ==<br />
Level 1 GST is terrain corrected and provided in 16-bit radiance values. The data are available in Geographic Tagged Image-File Format (GeoTIFF) and are distributed via download at no charge through either [https://earthexplorer.usgs.gov/ EarthExplorer] or [https://glovis.usgs.gov/ USGS Global Visualization Viewer (GloVis)].<br />
<br />
{| class="wikitable"<br />
|+ Level 1 GST specifications<br />
|-<br />
| Map projection || UTM (default zone of the scene center coordinates)<br />
|-<br />
| Horizontal Datum || WGS84<br />
|-<br />
| Resampling method || CC (cubic convolution)<br />
|-<br />
| Image orientation || Map (north up)<br />
|-<br />
| Pixel size || 30 meter (10 meter pan band)<br />
|-<br />
| Format || GeoTIFF<br />
|-<br />
| Output media || Download (no charge)<br />
|}<br />
<br />
=== Extracting and preparing data ===<br />
The data is downloaded as a zip file (i.e. ''EO1H1260582015073110T1_1GST.zip'') uncompressing as a directory (i.e. ''EO1H1260582015073110T1_1GST/''). Inside exists another directory (i.e. ''EO1H1260582015073110T1/'').<br />
<br />
The files inside are following this type of listing:<br />
* EO1H1260582015073110T1_B001_L1GST.TIF<br />
* EO1H1260582015073110T1_B002_L1GST.TIF<br />
* ...<br />
* EO1H1260582015073110T1_B241_L1GST.TIF<br />
* EO1H1260582015073110T1_B242_L1GST.TIF<br />
* EO1H1260582015073110T1_MTL_L1GST.TXT<br />
* EO1H1260582015073110T1_PF2_01.fgdc<br />
* README.txt<br />
<br />
Of which ''EO1H1260582015073110T1_MTL_L1GST.TXT'' is a Landsat type metadata header file (''MTL type'') well known to Landsat users.<br />
<br />
=== Data peculiarity ===<br />
It seems that bands 1-8 are filled with NODATA, the same for bands 58 to 76, and again for 225 to 242. <br />
<br />
For this reason, the pre-processing script below is avoiding the atmospheric correction of those bands. <br />
<br />
This seems to be explained by the presence of two sensors inside the instrument, one dedicated to VNIR hyperspectral sensing and the second one dedicated to SWIR hyperspectral sensing. This is further reinforced by observing the overlapping of band wavelengths across bands 56-57 and 77-78.<br />
<br />
== Import in GRASS, DN2Rad & Rad2Ref ==<br />
<br />
<source lang="python"><br />
#!/usr/bin/env python<br />
"""<br />
Process all HYPERION radiance .zip into reflectance.<br />
<br />
Download all radiance zip files into rsdatapath<br />
Make sure GRASS GIS and python-gdal are installed<br />
run this code after specifying your directories<br />
<br />
# Date: 1st December, 2023<br />
# Public domain, GRASS GIS<br />
<br />
# PURPOSE<br />
# This script processes HYPERION images<br />
# 1 - unzip *.zip files<br />
# 2 - Connect files in GRASS GIS Location of your choice<br />
# 3 - DN to Radiance (Apply Gain)<br />
# 4 - Radiance to Surface reflectance (i.atcorr)<br />
"""<br />
# Load necessary libraries<br />
import os<br />
import sys<br />
import time<br />
import glob<br />
import struct<br />
from subprocess import PIPE<br />
# from osgeo import ogr<br />
from osgeo import osr<br />
from osgeo import gdal<br />
# define GRASS-Python environment<br />
os.environ['GISBASE'] = "/usr/local/grass84"<br />
grass_pydir = os.path.join("/usr/local/grass84", "etc", "python")<br />
sys.path.append(grass_pydir)<br />
from grass.script import setup as gsetup<br />
from grass.pygrass.modules.shortcuts import raster as r<br />
from grass.pygrass.modules.shortcuts import imagery as i<br />
from grass.pygrass.modules import Module<br />
from grass.script.utils import parse_key_val<br />
<br />
# QUIET REPORTS<br />
QUIET = True<br />
<br />
# OVERWRITE EXISTING FILES<br />
OVR = True<br />
<br />
# Setup the path to the HYPERION Directories<br />
rsdatapath = "/home/yann/RSDATA/HYPERION"<br />
<br />
# Setup your GRASS GIS working directory<br />
grassdata = "/home/yann/grassdata/"<br />
location = "HYPERION"<br />
print(location)<br />
mapset = "PERMANENT"<br />
<br />
# DEM input for atmospheric correction<br />
inDEM = "/home/yann/RSDATA/SRTM/dem.vrt"<br />
<br />
# Visibility distance [Km]<br />
vis = 18<br />
<br />
# List of .zip HYPERION radiance tracks downloaded<br />
HYPERIONDirs = ["EO1H1260582015073110T1_1GST"] # , ""]<br />
<br />
# CONFIGURATION OF 6S<br />
# https://grass.osgeo.org/grass-stable/manuals/i.atcorr.html<br />
<br />
# Atmospheric mode<br />
# none = 0<br />
# tropical = 1<br />
# midlatitude summer = 2<br />
# midlatitude winter = 3<br />
atm_mode = 1<br />
# Aerosol model<br />
# none = 0<br />
# continental = 1<br />
# maritime = 2<br />
# urban = 3<br />
aerosol_mode = 2<br />
<br />
# END OF USER CHANGES<br />
# DO NOT CHANGE ANYTHING AFTER THIS LINE !<br />
<br />
# Change directory to find the tar.gz files of HYPERION<br />
os.chdir(rsdatapath)<br />
<br />
# Remove previous temporary GRASS Location<br />
p = os.system("rm -Rf "+grassdata+location)<br />
<br />
# Define a KVP retrieval function<br />
def findkvp(text, key):<br />
for item in text.split("\n"):<br />
if key in item:<br />
return (item.strip())<br />
<br />
# START PROCESS<br />
# Read Gain from File<br />
gain = []<br />
# Start processing each radiance track bundlefrom DN to Ref<br />
for HYPERIONDir in HYPERIONDirs:<br />
# Unzip all of your HYPERION images in all your directories<br />
#print("Unzip HYPERION files in ", HYPERIONDir)<br />
#p = os.system("unzip "+HYPERIONDir+".zip")<br />
# Go into the new created directory<br />
path = rsdatapath+'/'+HYPERIONDir+'/'+HYPERIONDir.split('_')[0]<br />
os.chdir(path)<br />
# Select the first file in the directory<br />
first = os.listdir(path)[0]<br />
print(first)<br />
# Create a temporary GRASS Location<br />
p = os.system("grass -c "+first+" -e "+grassdata+location)<br />
time.sleep(5)<br />
session = gsetup.init(grassdata, location, mapset)<br />
print("Import in GRASS GIS")<br />
# Import DEM for atmospheric correction<br />
ringdal = Module('r.in.gdal')<br />
# In case the DEM is available to import from srtm.csi.cgiar.org<br />
#rimport = Module('r.import')<br />
#rimport(input=inDEM, output="dem", extent="region", overwrite=OVR)<br />
# The least effective, make your own flat DEM layer (unit is Km)<br />
rmapcalc = Module('r.mapcalc')<br />
rmapcalc(expression="dem=0.1", overwrite=OVR)<br />
rmapcalc.wait()<br />
# Create a visibility (AOD) map (unit is km)<br />
rmapcalc(expression="vis=18", overwrite=OVR)<br />
rmapcalc.wait()<br />
# Import HYPERION in GRASS<br />
count = 1<br />
# To remove nodata from DN maps<br />
rnull = Module('r.null')<br />
# Define TIF list<br />
ext=['TIF','tif']<br />
listoftiffiles = [f for f in os.listdir(path) if any(f.endswith(e) for e in ext)]<br />
# Process import<br />
for file in listoftiffiles:<br />
outfile='dn.'+str(count)<br />
ringdal(input=file, output=outfile, quiet=QUIET)<br />
rnull(map=outfile, setnull=0, quiet=QUIET)<br />
count = count + 1<br />
# Read HYPERION image CRS TODO check that "first" has full path attached<br />
src = gdal.Open(first)<br />
ulx_, xres, xskew, uly_, yskew, yres = src.GetGeoTransform()<br />
lrx_ = ulx_ + (src.RasterXSize * xres)<br />
lry_ = uly_ + (src.RasterYSize * yres)<br />
# Setup the source projection<br />
source = osr.SpatialReference()<br />
source.ImportFromWkt(src.GetProjection())<br />
del src<br />
# The target projection is ll wgs84<br />
target = osr.SpatialReference()<br />
target.ImportFromEPSG(4326)<br />
# Create the transform<br />
transform = osr.CoordinateTransformation(source, target)<br />
# Transform the points<br />
uly, ulx, _ = transform.TransformPoint(ulx_, uly_)<br />
lry, lrx, _ = transform.TransformPoint(lrx_, lry_)<br />
# Read MTL file to import scene characteristics<br />
MTLfile = glob.glob('*MTL*', recursive=False)<br />
print("Metadatafile is ",MTLfile)<br />
with open(MTLfile[0], 'r') as file:<br />
data = file.read()<br />
<br />
gain_vnir = findkvp(data,"SCALING_FACTOR_VNIR").split("=")[1]<br />
gain_swir = findkvp(data,"SCALING_FACTOR_SWIR").split("=")[1]<br />
print("Gains VNIR %d & SWIR %d" % (int(gain_vnir), int(gain_swir)))<br />
# Extract time mean values<br />
starttimestamp = findkvp(data,"START_TIME").split("=")[1].strip()<br />
endtimestamp = findkvp(data,"END_TIME").split("=")[1].strip()<br />
starttime = starttimestamp.split(" ")[-1]<br />
endtime = endtimestamp.split(" ")[-1]<br />
decstarttime = float(starttime.split(":")[0])+float(starttime.split(":")[1])/60.0+float(starttime.split(":")[2])/3600.0<br />
decendtime = float(endtime.split(":")[0])+float(endtime.split(":")[1])/60.0+float(endtime.split(":")[2])/3600.0<br />
dectime = 0.5 * (decstarttime + decendtime)<br />
print("timestamp ", str(dectime))<br />
print(HYPERIONDir)<br />
acqdate = findkvp(data, "ACQUISITION_DATE").split("=")[1].strip()<br />
date = [acqdate.split("-")[0], acqdate.split("-")[1], acqdate.split("-")[2]]<br />
print(date)<br />
# HYPERION DN->Rad->Ref<br />
print("Convert DN to Rad")<br />
# Apply Gain for VNIR<br />
for j in range(8, 57+1):<br />
exp = str("rad."+str(j)+"=dn."+str(j)+"*10.0/"+str(gain_vnir))<br />
#print(exp)<br />
rmapcalc(expression=exp, overwrite=OVR, quiet=QUIET)<br />
rmapcalc.wait()<br />
# Apply Gain for VNIR<br />
for j in range(77, 224+1):<br />
exp = str("rad."+str(j)+"=dn."+str(j)+"*10.0/"+str(gain_swir))<br />
#print(exp)<br />
rmapcalc(expression=exp, overwrite=OVR, quiet=QUIET)<br />
rmapcalc.wait()<br />
# Atmospheric Correction<br />
print("Atmospheric Correction")<br />
# Basic script for i.atcorr for HYPERION<br />
# Sensor height (satellite is -1000)<br />
# Define the sensor height as Km and negative (for 6S)<br />
sens_height = -1000.0<br />
# Here we suppose you have altitude (DEM) and Visibility (VIS) maps ready<br />
# ---------------------------------------------<br />
# Altitude dummy value (in Km should be negative in this param file)<br />
# (overwritten by DEM raster input)<br />
alt = -0.600<br />
# datetime of satellite overpass (month, day, GMT decimal hour)<br />
mdh = str(date[1])+" "+str(date[2])+" "+str("%.3f" % float(dectime))<br />
print(mdh)<br />
# Central Lat/Long<br />
Lon = ulx+(lrx-ulx)/2.0<br />
Lat = lry+(uly-lry)/2.0<br />
print(Lon, Lat)<br />
# Create the handle for r.out.gdal<br />
routgdal = Module('r.out.gdal')<br />
# Process VNIR<br />
# satellite band number (HYPERION VNIR [433-481])<br />
satbandno = 433 # Band 8 of HYPERION is first for atmospheric correction<br />
for idx in range(8,57+1):<br />
# Geometrical conditions (HYPERION VNIR = 32, SWIR = 33)<br />
geom = 32<br />
b = "rad." + str(idx)<br />
b_out = b.replace("rad.", "ref.")<br />
# Extract min max radiance stats<br />
rinfo = Module('r.info', map="rad."+str(idx), flags="s", stdout_=PIPE)<br />
rinfo_out = parse_key_val(rinfo.outputs.stdout)<br />
# Extract mean values from Dict<br />
minimum = float(rinfo_out["min"])<br />
maximum = float(rinfo_out["max"])<br />
if (minimum < 0.0):<br />
minimum = 0.0<br />
param = []<br />
# geometrical conditions=HYPERION<br />
param.append(str(geom)+"\n")<br />
# month day hh.ddd longitude latitude (hh.ddd is in decimal hours GMT)<br />
param.append(str(mdh)+" "+str("%.2f" % Lon)+" "+str("%.2f" % Lat)+"\n")<br />
# atmospheric mode=tropical<br />
param.append(str(atm_mode)+"\n")<br />
# aerosols model=maritime<br />
param.append(str(aerosol_mode)+"\n")<br />
# visibility [km] (aerosol model concentration), not used (raster input)\n")<br />
param.append(str(vis)+"\n")<br />
# mean target elevation above sea level [km] (here 600m asl), not used (raster input)<br />
param.append(str(alt)+"\n")<br />
# sensor height (here, a satellite)<br />
param.append(str("%.2f" % round(sens_height,2))+"\n")<br />
# i th band of HYPERION (atcorr internal no)<br />
param.append(str(satbandno))<br />
prm = "param_HYPERION.txt"<br />
f = open(prm, "w")<br />
f.writelines(param)<br />
f.close()<br />
print(b)<br />
print(b_out)<br />
iatcorr = Module('i.atcorr')<br />
iatcorr(input=b, elevation="dem", visibility="vis", parameters=prm,<br />
output=b_out, range=[minimum, maximum], rescale=[0.0,1.0], quiet=QUIET, overwrite=OVR)<br />
routgdal(input=b_out, output=HYPERIONDir+"_"+b_out+".tif", overwrite=OVR, quiet=QUIET)<br />
satbandno = satbandno + 1<br />
<br />
<br />
# Process SWIR<br />
# satellite band number (HYPERION SWIR [482-628])<br />
satbandno = 482 # Band 77 of HYPERION is first for atmospheric correction<br />
for idx in range(77,224+1):<br />
# Geometrical conditions (HYPERION VNIR = 32, SWIR = 33)<br />
geom = 33<br />
b = "rad." + str(idx)<br />
b_out = b.replace("rad.", "ref.")<br />
# Extract min max radiance stats<br />
rinfo = Module('r.info', map="rad."+str(idx), flags="s", stdout_=PIPE)<br />
rinfo_out = parse_key_val(rinfo.outputs.stdout)<br />
# Extract mean values from Dict<br />
minimum = float(rinfo_out["min"])<br />
maximum = float(rinfo_out["max"])<br />
if (minimum < 0.0):<br />
minimum = 0.0<br />
param = []<br />
# geometrical conditions=HYPERION<br />
param.append(str(geom)+"\n")<br />
# month day hh.ddd longitude latitude (hh.ddd is in decimal hours GMT)<br />
param.append(str(mdh)+" "+str("%.2f" % Lon)+" "+str("%.2f" % Lat)+"\n")<br />
# atmospheric mode=tropical<br />
param.append(str(atm_mode)+"\n")<br />
# aerosols model=maritime<br />
param.append(str(aerosol_mode)+"\n")<br />
# visibility [km] (aerosol model concentration), not used (raster input)\n")<br />
param.append(str(vis)+"\n")<br />
# mean target elevation above sea level [km] (here 600m asl), not used (raster input)<br />
param.append(str(alt)+"\n")<br />
# sensor height (here, a satellite)<br />
param.append(str("%.2f" % round(sens_height,2))+"\n")<br />
# i th band of HYPERION (atcorr internal no)<br />
param.append(str(satbandno))<br />
prm = "param_HYPERION.txt"<br />
f = open(prm, "w")<br />
f.writelines(param)<br />
f.close()<br />
print(b)<br />
print(b_out)<br />
iatcorr = Module('i.atcorr')<br />
iatcorr(input=b, elevation="dem", visibility="vis", parameters=prm,<br />
output=b_out, range=[minimum, maximum], rescale=[0.0,1.0], quiet=QUIET, overwrite=OVR)<br />
routgdal(input=b_out, output=HYPERIONDir+"_"+b_out+".tif", overwrite=OVR, quiet=QUIET)<br />
satbandno = satbandno + 1<br />
</source><br />
<br />
== Signatures preparation and launching i.spec.sam ==<br />
<br />
<source lang="shell"><br />
# Define the Hyperion files available for processing<br />
listf="ref.8 ref.9 ref.10 ref.11 ref.12 ref.13 ref.14 ref.15 ref.16 ref.17 ref.18 ref.19 ref.20 ref.21 ref.22 ref.23 ref.24 ref.25 ref.26 ref.27 ref.28 ref.29 ref.30 ref.31 ref.32 ref.33 ref.34 ref.35 ref.36 ref.37 ref.38 ref.39 ref.40 ref.41 ref.42 ref.43 ref.44 ref.45 ref.46 ref.47 ref.48 ref.49 ref.50 ref.51 ref.52 ref.53 ref.54 ref.55 ref.56 ref.57 ref.77 ref.78 ref.79 ref.80 ref.81 ref.82 ref.83 ref.84 ref.85 ref.86 ref.87 ref.88 ref.89 ref.90 ref.91 ref.92 ref.93 ref.94 ref.95 ref.96 ref.97 ref.98 ref.99 ref.100 ref.101 ref.102 ref.103 ref.104 ref.105 ref.106 ref.107 ref.108 ref.109 ref.110 ref.111 ref.112 ref.113 ref.114 ref.115 ref.116 ref.117 ref.118 ref.119 ref.120 ref.121 ref.122 ref.123 ref.124 ref.125 ref.126 ref.127 ref.128 ref.129 ref.130 ref.131 ref.132 ref.133 ref.134 ref.135 ref.136 ref.137 ref.138 ref.139 ref.140 ref.141 ref.142 ref.143 ref.144 ref.145 ref.146 ref.147 ref.148 ref.149 ref.150 ref.151 ref.152 ref.153 ref.154 ref.155 ref.156 ref.157"<br />
<br />
# Clean up .sign files<br />
rm -f *.sign<br />
# Name the signature file for i.spec.sam<br />
sigfname="KL.sig"<br />
rm -f $sigfname<br />
<br />
echo "# Signatures for Hyperion image of KL" >> $sigfname<br />
<br />
# Water in river<br />
classname="water1"<br />
coords="215455.8579625377,383556.12608450593"<br />
fname="$classname.sign"<br />
# Clean up temp file<br />
rm -f temp<br />
for file in $listf<br />
do<br />
r.what map=$file coordinates=$coords separator='comma' >> temp<br />
done<br />
# Define cols number in sig file<br />
lno=$(cat temp | wc -l)<br />
sed -i 's/\(.*\),,\(.*\)/\2/' temp<br />
rm -f temp1<br />
for number in $(cat temp)<br />
do<br />
printf "%.8f " $number >> temp1<br />
done<br />
tr '\n' ' ' < temp1 > $fname<br />
echo "# $classname" >> $sigfname<br />
<br />
# Forest area<br />
classname="forest1"<br />
coords="199906.1669829222,331418.4535104364"<br />
fname="$classname.sign"<br />
# Clean up temp file<br />
rm -f temp<br />
for file in $listf<br />
do<br />
r.what map=$file coordinates=$coords separator='comma' >> temp<br />
done<br />
sed -i 's/\(.*\),,\(.*\)/\2/' temp<br />
rm -f temp1<br />
for number in $(cat temp)<br />
do<br />
printf "%.8f " $number >> temp1<br />
done<br />
tr '\n' ' ' < temp1 > $fname<br />
echo "# $classname" >> $sigfname<br />
<br />
# Define rows number in sig file<br />
signo=$(ls *.sign | wc -l)<br />
<br />
# Complete the sig file<br />
echo "# " >> $sigfname<br />
echo "Matrix: $signo by $lno" >> $sigfname <br />
n=0<br />
for file in *.sign<br />
do<br />
echo "row$n: $(cat $file)" >> $sigfname<br />
n=$(echo "$n + 1" | bc)<br />
done<br />
# i.spec.sam does not like a space at the end of a line<br />
sed -i 's/\s*$//' $sigfname<br />
<br />
# Define the imagery working group<br />
listmaps=$(echo $listf | sed 's/\ /,/g')<br />
i.group group=temp input=$listmaps --quiet<br />
<br />
# Run a first set of Spectral Angle convergence<br />
i.spec.sam group=temp input=$sigfname result=s --verbose<br />
<br />
</source><br />
<br />
[[Category: Documentation]]<br />
[[Category: Image processing]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Sponsors&diff=27336Sponsors2023-12-03T13:25:12Z<p>Neteler: + Guest (5 USD)</p>
<hr />
<div>If you, your company or association also want to contribute, whatever the amount, '''you can do so via [https://opencollective.com/grass Open Collective]'''.<br />
<br />
== Individuals who have sponsored GRASS GIS ==<br />
<br />
=== 2023 ===<br />
<br />
Note: these figures are gross figures.<br />
* Guest (5 USD)<br />
* Guest (5 USD)<br />
* Ariel Anthieni (28.75 USD)<br />
* Chris (23.00 USD)<br />
* Stephen Mather (27.50 USD)<br />
* Natalie Robbins (28.75 USD)<br />
* Mike Williams (55.00 USD)<br />
* Kevin (28.75 USD)<br />
* Stacy (25.00 USD)<br />
* Spencer Roddan (20.00 USD)<br />
* Robert Dzur (50.00 USD)<br />
* Guest (10 USD)<br />
* bonushenricus (23 USD)<br />
* Omar Tapia (5.75 USD)<br />
* Alberto (5.75 USD)<br />
* Adam B. Smith (23 USD)<br />
* Johannes (23 USD)<br />
* Bon (50 USD)<br />
* OSGeo Japan (550 USD)<br />
* José Ramón (50 USD)<br />
* Peter Löwe (30 USD)<br />
* Evan Kay (10 USD)<br />
* Nick Brady (50 USD)<br />
* Guest (1,750 USD)<br />
* Guest (1,000 USD)<br />
* Johannes Brauner (31 USD)<br />
* MarWe (50 USD)<br />
* Joaquin Perez Valera (5 USD)<br />
* Michele Urbano (20 USD)<br />
* David Allen (10 USD)<br />
* IVEKS PLUS DOO Babusnica (5 USD)<br />
* Chuan-Kai Hsieh (5 USD)<br />
* Qingqing (5 USD)<br />
* Gilbert Armendariz (10 USD)<br />
* Byman (10 USD)<br />
* Robert C Burtch (20 USD)<br />
* Chiara (5 USD)<br />
<br />
=== 2022 ===<br />
* Hernán De Angelis (20 USD)<br />
* Robert Kringel (150 USD)<br />
* Federico Leva (1 USD)<br />
* Nicola Maria D'Angelo (10 USD)<br />
* PaoWulf (10 USD)<br />
* Michele Urbano (20 USD)<br />
* Stefan Blumentrath (50 USD)<br />
* Anonymous (434.65 USD)<br />
<br />
=== 2021 ===<br />
* Chiara Audisio (5€)<br />
* Margherita Di Leo (50€)<br />
* Sabine Vanhuysse (43€)<br />
* Karsten Vennemann (250€)<br />
* Casey Ghilardi (100€)<br />
* Moritz Lennert (10 USD)<br />
* Nikos Alexandris (50 USD)<br />
* Stefan Blumentrath (50 USD)<br />
* Markus Neteler (50 USD)<br />
* Anonymous (55 USD)<br />
<br />
=== 2020 ===<br />
* Daniel McInerney (50€)<br />
* Frank David (50€)<br />
* Chiara Audisio (5€)<br />
* Christopher Kahler (100€)<br />
* Hernán De Angelis (15€)<br />
* Peter Paudits (30€)<br />
* Anonymous (20€)<br />
<br />
=== 2019 ===<br />
* Chiara Audisio (10€)<br />
* Anonymous (15€)<br />
* Stuart Edwards (50€)<br />
* Nicolas Pérenne (8,82€)<br />
* Aldo Clerici (50€)<br />
* Hernán De Angelis (15€)<br />
* Andre Mano (15€)<br />
* Donal Bisanzio (50€)<br />
* Francesco Paolo Lovergine (50€)<br />
* Paulo van Breugel (15€)<br />
* Margherita Di Leo (100€)<br />
* Mike Spencer (20€)<br />
* Valentin Lucet (5€)<br />
* Jose Martinez Batlle (20€)<br />
* Loïc Bartoletti (20€)<br />
* Jorge Gaspar Sanz Salinas (20€)<br />
* Ghislain Vieilledent (15€)<br />
* Nikolaos Alexandris (111€)<br />
* Rengifo Ortega (25€)<br />
* Fowad Ahmed (10€)<br />
* Arnd Weber (111,11€)<br />
* Helena Mitasova (300€)<br />
* Peter Tittmann (20€)<br />
* Aasmund Hegnar (10€)<br />
<br />
=== 2015 ===<br />
* Johannes Brauner (?)<br />
* OSGeo community members (about 100€)<br />
<br />
=== 2014 ===<br />
* Micro-donations via [http://grass.osgeo.org/donations PayPal] or [http://grass.osgeo.org/news/31/15/Call-for-sponsors/ direct bank transfer], total of 325 Euro:<br />
** Pietro Blu Giandonato<br />
** Johannes Radinger<br />
** Alessandro Fanna<br />
** Mark Seibel<br />
** Johannes Brauner<br />
** Ivan Marchesini<br />
** Luca Casagrande<br />
** Veronica Andreo<br />
** David Adams<br />
** Massimo Di Stefano<br />
** Stefan Blumentrath<br />
** Scott Mitchell<br />
<br />
=== 2013 ===<br />
* Anonymous donor - 100 euro<br />
* Flavio Rigolon - 30 euro<br />
* Nobusuke Iwasaki - 200 euro<br />
* Giuliano Urgeghe - 50 euro<br />
* Peter Löwe - 50 EUR<br />
* Andrea Borruso - 25 EUR<br />
* Massimo Di Stefano - 30 EUR<br />
* Alessandro Sarretta - 5 EUR<br />
* Joshua Campbell - 50 EUR<br />
* Andreas Neumann - 75 EUR<br />
* Jon Eiriksson - 50 EUR<br />
* Luca Casagrande - 30 EUR<br />
* Karyn O Newcomb - 5 EUR<br />
* Holger Naumann - 25 EUR<br />
* Anne Ghisla - 190 EUR<br />
* Helena Mitasova and Lubos Mitas - 200EUR<br />
* Dimitris Tamp - 50 EUR<br />
* Mark Seibel - 10 EUR<br />
* Tawny Gapinski - 3EUR<br />
* Markus Metz - 40 EUR<br />
<br />
== Companies which have sponsored GRASS GIS ==<br />
<br />
*2022<br />
** [http://geophom.fr/ GEOPHOM] - 400 USD<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored) <br />
*2021<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored) <br />
** [http://www.indotechsa.com/ Indotechsa] - 25€<br />
** Tres Techies SL - 50€<br />
** [https://bhinc.com/ Bohannan Huston Inc] - 2175€<br />
* 2020<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored)<br />
* 2019<br />
** [https://www.mundialis.de mundialis] (developer time sponsored: Markus Metz, Markus Neteler, Anika Bettge, Carmen Tawalika)<br />
** [http://spatial-ecology.net/ Spatial-Ecology] - 50€<br />
** [http://www.ideetransfer.net Ideetransfer] - 20€<br />
* 2018<br />
** [https://www.mundialis.de mundialis] (developer time sponsored: Markus Metz, Markus Neteler, Anika Bettge)<br />
* 2013<br />
** [https://www.r3-gis.com/ R3 GIS], Merano, Italy - 300 €<br />
** [https://www.intevation.de Intevation Gmbh], Osnabrück, Germany - 100 €<br />
** [https://www.gter.it GTER srl], Genova, Italy - Donated to the core developers a really beautiful USB key<br />
* 2012<br />
** Stefan Sylla, [http://sylla-consult.de/en/ sylla-consult], Frankfurt, Germany - 500 €<br />
* 2011<br />
** Stefan Sylla, [http://sylla-consult.de/en/ sylla-consult], Frankfurt, Germany - 100 €<br />
** [https://www.r3-gis.com/ R3 GIS], Merano, Italy - 500 €<br />
* 2006<br />
** [https://www.faunalia.it/ Faunalia], Pontedera, Italy: r.li.* toolset development<br />
* 2000-2007<br />
** [https://www.intevation.de/index.en.html Intevation GmbH], Osnabrück: Provided CVS and Request Tracker from 2000-2007<br />
<br />
== Associations which have sponsored GRASS GIS ==<br />
* 2023<br />
** [http://www.fossgis.de FOSSGIS e.V.], D-A-CH, - 5000 euro<br />
** [https://www.osgeo.org/ OSGeo] - 7303 USD<br />
** [https://www.osgeo.jp/ OSGeo Japan] - 550 USD<br />
* 2019<br />
** [https://www.fossgis.de/ FOSSGIS e.V.] - 1091.59 Euro<br />
* 2015<br />
** [https://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 1500 Euro<br />
* 2013<br />
** [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 750 USD<br />
** [http://www.fossgis.de/ FOSSGIS e.V.] - 1.500 Euro<br />
* 2012<br />
** [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 1000 Euro<br />
** [http://www.fossgis.de/ FOSSGIS e.V.] - 1000 Euro<br />
* 2011<br />
** [http://gfoss.it/ GFOSS.it Associazione Italiana per l'Informazione Geografica Libera] - 1400 Euro<br />
** [http://www.fossgis.de FOSSGIS e.V.], D-A-CH, - 500 euro<br />
<br />
== Institutions which have sponsored GRASS GIS ==<br />
<br />
* Czech Technical University in Prague, Faculty of Civil Engineering: Hosting of winGRASS and developer time<br />
* Fondazione Edmund Mach, S. Michele all'Adige (Trento), Italy: Support for the co-development of various GRASS GIS modules<br />
* Municipality of Trento, Italy: Co-funding of GRASS wxGUI development (2005-2012)<br />
* ITC-irst (now FBK), Trento, Italy: Support for the co-development of more than 60 GRASS modules (2002-2012)<br />
* Osaka City University - Orkney Inc. - MEXT, Japan: translation, some wxGUI support<br />
* University of Hannover, Germany: Hosting of GRASS Web site till 2007, support for the co-development of various GRASS modules<br />
<br />
== Google Summer of Code ==<br />
<br />
* Google Inc. through OSGeo (since 2008): [https://trac.osgeo.org/grass/wiki/GSoC several new modules] through their generous 'Google Summer of Code' program.<br />
<br />
=== See also ===<br />
<br />
* Template for [[Community Sprint Funding]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=User:Neteler&diff=27281User:Neteler2023-11-29T18:55:31Z<p>Neteler: Update homepage URLs</p>
<hr />
<div>== Markus Neteler ==<br />
<br />
GRASS GIS [[Team]]<br />
<br />
OSGeo: https://wiki.osgeo.org/wiki/Markus_Neteler<br />
<br />
Work: https://www.mundialis.de/<br />
<br />
Scientific work and courses: https://neteler.org/<br />
<br />
GRASS GIS book: https://grassbook.org/</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Budget_2023&diff=27280GRASS GIS Budget 20232023-11-22T21:46:44Z<p>Neteler: added https://wiki.osgeo.org/wiki/OSGeo_Budget_2023#OSGeo_Projects and https://wiki.osgeo.org/wiki/GRASS_GIS_Budget_2023</p>
<hr />
<div>{{toc|right}}<br />
<br />
''Note: all numbers are written as is in the page. Please edit sums and totals accordingly. Or use LibreOffice/Excel and convert with <nowiki>https://excel2wiki.toolforge.org/</nowiki>''<br />
<br />
Ledger.ods file: https://nextcloud.osgeo.org/s/a3HWrjji7t5WjLt (read-only)<br />
<br />
== Planned Income ==<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount USD'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| [[GRASS GIS Budget 2022|Surplus from 2022]] || 2419.40 || 2595.60 || Paypal + [https://opencollective.com/osgeo/projects/grass opencollective]<br />
|-<br />
| [https://grass.osgeo.org/donations/ Donations] || 2330.29 || 2500.00 || Planned via fundraising program: see [[Sponsors|Sponsoring]]<br />
|-<br />
| Request to OSGeo ([https://wiki.osgeo.org/wiki/OSGeo_Budget_2023#OSGeo_Projects main budget]) || 1864.23 || 2000.00 || (Planned, see also the [https://wiki.osgeo.org/wiki/GRASS_GIS_Budget_2023 formal request to OSGeo])<br />
|-<br />
| Request to OSGeo ([https://wiki.osgeo.org/wiki/OSGeo_Budget_2023#Code_Sprints sprint budget]) || 2796.34 || 3000.00 || (Planned)<br />
|-<br />
| '''Total''' || '''9410.26''' || '''10095.60'''<br />
|-<br />
|}<br />
<br />
== Planned Expenses ==<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount USD'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| ''Exchange rate (as of 31 Dec 2022)'' || ''1.0''|| ''1.07283'' || See: https://www.xe.com/currencyconverter/convert/?Amount=1&From=EUR&To=USD<br />
|-<br />
| || || || <br />
|-<br />
| '''Administration'''<br />
|-<br />
| Bank fees (base pkg, wire fees, paypal fees, etc.) || 46.61 || 50 || Estimated<br />
|-<br />
| || || || <br />
|-<br />
| '''Events/Community Sprints'''<br />
|-<br />
| Main GRASS GIS 40th b-day Community Sprint 2023 || 3728.46 || 4000.00 || GRASS becomes 40 yo and we plan an in-person community sprint!! This amount is to partially cover travel + housing expenses for devs<br />
|-<br />
| Microgrants for student (500 + 2*1000) || 2516.71 || 2700.00 || See [[Student Grants|Student Grants]], the sum includes amount still payable (500 €) for the one granted by the end of 2022, in addition to 2 new grants to be offered<br />
|-<br />
| &nbsp; &nbsp; &nbsp;'''Subtotal Sprints''' || '''6291.77''' || '''6750.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| '''Marketing/Other'''<br />
|-<br />
| T-shirts and/or swag for promotion/users/meetups/conferences || 279.63 || 300.00 || Community members will be able to get swag for local or global events (e.g., GIS Day)<br />
|-<br />
| Stickers and magnets (conferences, talks, general promotion) || 279.63 || 300.00 || <br />
|-<br />
| || || || <br />
|-<br />
| &nbsp; &nbsp; &nbsp;'''Subtotal Marketing''' || '''559.27''' || '''600.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| '''Translation service'''<br />
|-<br />
| Weblate/DeepL || 186.42 || 200.00 || 50 usd per month for 4 months<br />
|-<br />
| &nbsp; &nbsp; &nbsp;'''Subtotal Translation''' || '''186.42''' || '''200.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| || || || <br />
|-<br />
| '''TOTAL''' || '''7037.46''' || '''7550.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| '''Delta to be fundraised (planned - OSGeo contribution)''' || '''2376.89''' || '''2550''' || To be covered by surplus from 2022 + fundraising in 2023 (https://opencollective.com/grass)<br />
|-<br />
| '''Result at the end of the year''' || '''2129.67''' || '''2284.78''' || <br />
|-<br />
|}<br />
<br />
<!--<br />
== Actual expenses ==<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| '''Administration'''<br />
|-<br />
| Bank fees (base pkg, wire fees, paypal fees, etc.) || 20 ||<br />
|-<br />
| '''Events'''<br />
|-<br />
| ... || ... ||<br />
|-<br />
| Travel grants for community sprints || ... || see TBD<br />
|-<br />
| '''Other'''<br />
|-<br />
| T-shirts for community sprints || ... ||<br />
|-<br />
| T-shirts for promotion/users || ... ||<br />
|-<br />
| Flyers for events (Community sprint, FOSS4G conferences, EGU, FOSDEM...) || ... ||<br />
|-<br />
| Stickers (conferences, talks, general promotion) || ... ||<br />
|-<br />
| '''TOTAL''' || '''20''' ||<br />
|-<br />
|}<br />
<br />
<br />
== Informative only ==<br />
<br />
This section is not directly affecting the GRASS GIS project budget.<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount USD'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| ''Exchange rate (as of 31 Dec 2020)'' || ''1.0''|| ''1.xxx'' || See: https://www.xe.com/currencyconverter/convert/?Amount=1&From=EUR&To=USD<br />
|-<br />
| || || || <br />
|-<br />
|}<br />
<br />
--><br />
<br />
[[Category: Budget]]<br />
[[Category: 2023]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Budget_2023&diff=27279GRASS GIS Budget 20232023-11-22T21:41:11Z<p>Neteler: Update nextcloud URL to Ledger.ods file</p>
<hr />
<div>{{toc|right}}<br />
<br />
''Note: all numbers are written as is in the page. Please edit sums and totals accordingly. Or use LibreOffice/Excel and convert with <nowiki>https://excel2wiki.toolforge.org/</nowiki>''<br />
<br />
Ledger.ods file: https://nextcloud.osgeo.org/s/a3HWrjji7t5WjLt (read-only)<br />
<br />
== Planned Income ==<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount USD'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| [[GRASS GIS Budget 2022|Surplus from 2022]] || 2419.40 || 2595.60 || Paypal + [https://opencollective.com/osgeo/projects/grass opencollective]<br />
|-<br />
| [https://grass.osgeo.org/donations/ Donations] || 2330.29 || 2500.00 || Planned via fundraising program: see [[Sponsors|Sponsoring]]<br />
|-<br />
| Request to OSGeo (main budget) || 1864.23 || 2000.00 || (Planned)<br />
|-<br />
| Request to OSGeo (sprint budget) || 2796.34 || 3000.00 || (Planned)<br />
|-<br />
| '''Total''' || '''9410.26''' || '''10095.60'''<br />
|-<br />
|}<br />
<br />
== Planned Expenses ==<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount USD'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| ''Exchange rate (as of 31 Dec 2022)'' || ''1.0''|| ''1.07283'' || See: https://www.xe.com/currencyconverter/convert/?Amount=1&From=EUR&To=USD<br />
|-<br />
| || || || <br />
|-<br />
| '''Administration'''<br />
|-<br />
| Bank fees (base pkg, wire fees, paypal fees, etc.) || 46.61 || 50 || Estimated<br />
|-<br />
| || || || <br />
|-<br />
| '''Events/Community Sprints'''<br />
|-<br />
| Main GRASS GIS 40th b-day Community Sprint 2023 || 3728.46 || 4000.00 || GRASS becomes 40 yo and we plan an in-person community sprint!! This amount is to partially cover travel + housing expenses for devs<br />
|-<br />
| Microgrants for student (500 + 2*1000) || 2516.71 || 2700.00 || See [[Student Grants|Student Grants]], the sum includes amount still payable (500 €) for the one granted by the end of 2022, in addition to 2 new grants to be offered<br />
|-<br />
| &nbsp; &nbsp; &nbsp;'''Subtotal Sprints''' || '''6291.77''' || '''6750.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| '''Marketing/Other'''<br />
|-<br />
| T-shirts and/or swag for promotion/users/meetups/conferences || 279.63 || 300.00 || Community members will be able to get swag for local or global events (e.g., GIS Day)<br />
|-<br />
| Stickers and magnets (conferences, talks, general promotion) || 279.63 || 300.00 || <br />
|-<br />
| || || || <br />
|-<br />
| &nbsp; &nbsp; &nbsp;'''Subtotal Marketing''' || '''559.27''' || '''600.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| '''Translation service'''<br />
|-<br />
| Weblate/DeepL || 186.42 || 200.00 || 50 usd per month for 4 months<br />
|-<br />
| &nbsp; &nbsp; &nbsp;'''Subtotal Translation''' || '''186.42''' || '''200.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| || || || <br />
|-<br />
| '''TOTAL''' || '''7037.46''' || '''7550.00''' ||<br />
|-<br />
| || || || <br />
|-<br />
| '''Delta to be fundraised (planned - OSGeo contribution)''' || '''2376.89''' || '''2550''' || To be covered by surplus from 2022 + fundraising in 2023 (https://opencollective.com/grass)<br />
|-<br />
| '''Result at the end of the year''' || '''2129.67''' || '''2284.78''' || <br />
|-<br />
|}<br />
<br />
<!--<br />
== Actual expenses ==<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| '''Administration'''<br />
|-<br />
| Bank fees (base pkg, wire fees, paypal fees, etc.) || 20 ||<br />
|-<br />
| '''Events'''<br />
|-<br />
| ... || ... ||<br />
|-<br />
| Travel grants for community sprints || ... || see TBD<br />
|-<br />
| '''Other'''<br />
|-<br />
| T-shirts for community sprints || ... ||<br />
|-<br />
| T-shirts for promotion/users || ... ||<br />
|-<br />
| Flyers for events (Community sprint, FOSS4G conferences, EGU, FOSDEM...) || ... ||<br />
|-<br />
| Stickers (conferences, talks, general promotion) || ... ||<br />
|-<br />
| '''TOTAL''' || '''20''' ||<br />
|-<br />
|}<br />
<br />
<br />
== Informative only ==<br />
<br />
This section is not directly affecting the GRASS GIS project budget.<br />
<br />
{| {{table}}<br />
| align="center" style="background:#f0f0f0;"|'''Source'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount €'''<br />
| align="center" style="background:#f0f0f0;"|'''Amount USD'''<br />
| align="center" style="background:#f0f0f0;"|'''Notes'''<br />
|-<br />
| ''Exchange rate (as of 31 Dec 2020)'' || ''1.0''|| ''1.xxx'' || See: https://www.xe.com/currencyconverter/convert/?Amount=1&From=EUR&To=USD<br />
|-<br />
| || || || <br />
|-<br />
|}<br />
<br />
--><br />
<br />
[[Category: Budget]]<br />
[[Category: 2023]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Sponsors&diff=27278Sponsors2023-11-21T21:23:28Z<p>Neteler: + Guest (5 USD)</p>
<hr />
<div>If you, your company or association also want to contribute, whatever the amount, '''you can do so via [https://opencollective.com/grass Open Collective]'''.<br />
<br />
== Individuals who have sponsored GRASS GIS ==<br />
<br />
=== 2023 ===<br />
<br />
Note: these figures are gross figures.<br />
* Guest (5 USD)<br />
* Ariel Anthieni (28.75 USD)<br />
* Chris (23.00 USD)<br />
* Stephen Mather (27.50 USD)<br />
* Natalie Robbins (28.75 USD)<br />
* Mike Williams (55.00 USD)<br />
* Kevin (28.75 USD)<br />
* Stacy (25.00 USD)<br />
* Spencer Roddan (20.00 USD)<br />
* Robert Dzur (50.00 USD)<br />
* Guest (10 USD)<br />
* bonushenricus (23 USD)<br />
* Omar Tapia (5.75 USD)<br />
* Alberto (5.75 USD)<br />
* Adam B. Smith (23 USD)<br />
* Johannes (23 USD)<br />
* Bon (50 USD)<br />
* OSGeo Japan (550 USD)<br />
* José Ramón (50 USD)<br />
* Peter Löwe (30 USD)<br />
* Evan Kay (10 USD)<br />
* Nick Brady (50 USD)<br />
* Guest (1,750 USD)<br />
* Guest (1,000 USD)<br />
* Johannes Brauner (31 USD)<br />
* MarWe (50 USD)<br />
* Joaquin Perez Valera (5 USD)<br />
* Michele Urbano (20 USD)<br />
* David Allen (10 USD)<br />
* IVEKS PLUS DOO Babusnica (5 USD)<br />
* Chuan-Kai Hsieh (5 USD)<br />
* Qingqing (5 USD)<br />
* Gilbert Armendariz (10 USD)<br />
* Byman (10 USD)<br />
* Robert C Burtch (20 USD)<br />
* Chiara (5 USD)<br />
<br />
=== 2022 ===<br />
* Hernán De Angelis (20 USD)<br />
* Robert Kringel (150 USD)<br />
* Federico Leva (1 USD)<br />
* Nicola Maria D'Angelo (10 USD)<br />
* PaoWulf (10 USD)<br />
* Michele Urbano (20 USD)<br />
* Stefan Blumentrath (50 USD)<br />
* Anonymous (434.65 USD)<br />
<br />
=== 2021 ===<br />
* Chiara Audisio (5€)<br />
* Margherita Di Leo (50€)<br />
* Sabine Vanhuysse (43€)<br />
* Karsten Vennemann (250€)<br />
* Casey Ghilardi (100€)<br />
* Moritz Lennert (10 USD)<br />
* Nikos Alexandris (50 USD)<br />
* Stefan Blumentrath (50 USD)<br />
* Markus Neteler (50 USD)<br />
* Anonymous (55 USD)<br />
<br />
=== 2020 ===<br />
* Daniel McInerney (50€)<br />
* Frank David (50€)<br />
* Chiara Audisio (5€)<br />
* Christopher Kahler (100€)<br />
* Hernán De Angelis (15€)<br />
* Peter Paudits (30€)<br />
* Anonymous (20€)<br />
<br />
=== 2019 ===<br />
* Chiara Audisio (10€)<br />
* Anonymous (15€)<br />
* Stuart Edwards (50€)<br />
* Nicolas Pérenne (8,82€)<br />
* Aldo Clerici (50€)<br />
* Hernán De Angelis (15€)<br />
* Andre Mano (15€)<br />
* Donal Bisanzio (50€)<br />
* Francesco Paolo Lovergine (50€)<br />
* Paulo van Breugel (15€)<br />
* Margherita Di Leo (100€)<br />
* Mike Spencer (20€)<br />
* Valentin Lucet (5€)<br />
* Jose Martinez Batlle (20€)<br />
* Loïc Bartoletti (20€)<br />
* Jorge Gaspar Sanz Salinas (20€)<br />
* Ghislain Vieilledent (15€)<br />
* Nikolaos Alexandris (111€)<br />
* Rengifo Ortega (25€)<br />
* Fowad Ahmed (10€)<br />
* Arnd Weber (111,11€)<br />
* Helena Mitasova (300€)<br />
* Peter Tittmann (20€)<br />
* Aasmund Hegnar (10€)<br />
<br />
=== 2015 ===<br />
* Johannes Brauner (?)<br />
* OSGeo community members (about 100€)<br />
<br />
=== 2014 ===<br />
* Micro-donations via [http://grass.osgeo.org/donations PayPal] or [http://grass.osgeo.org/news/31/15/Call-for-sponsors/ direct bank transfer], total of 325 Euro:<br />
** Pietro Blu Giandonato<br />
** Johannes Radinger<br />
** Alessandro Fanna<br />
** Mark Seibel<br />
** Johannes Brauner<br />
** Ivan Marchesini<br />
** Luca Casagrande<br />
** Veronica Andreo<br />
** David Adams<br />
** Massimo Di Stefano<br />
** Stefan Blumentrath<br />
** Scott Mitchell<br />
<br />
=== 2013 ===<br />
* Anonymous donor - 100 euro<br />
* Flavio Rigolon - 30 euro<br />
* Nobusuke Iwasaki - 200 euro<br />
* Giuliano Urgeghe - 50 euro<br />
* Peter Löwe - 50 EUR<br />
* Andrea Borruso - 25 EUR<br />
* Massimo Di Stefano - 30 EUR<br />
* Alessandro Sarretta - 5 EUR<br />
* Joshua Campbell - 50 EUR<br />
* Andreas Neumann - 75 EUR<br />
* Jon Eiriksson - 50 EUR<br />
* Luca Casagrande - 30 EUR<br />
* Karyn O Newcomb - 5 EUR<br />
* Holger Naumann - 25 EUR<br />
* Anne Ghisla - 190 EUR<br />
* Helena Mitasova and Lubos Mitas - 200EUR<br />
* Dimitris Tamp - 50 EUR<br />
* Mark Seibel - 10 EUR<br />
* Tawny Gapinski - 3EUR<br />
* Markus Metz - 40 EUR<br />
<br />
== Companies which have sponsored GRASS GIS ==<br />
<br />
*2022<br />
** [http://geophom.fr/ GEOPHOM] - 400 USD<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored) <br />
*2021<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored) <br />
** [http://www.indotechsa.com/ Indotechsa] - 25€<br />
** Tres Techies SL - 50€<br />
** [https://bhinc.com/ Bohannan Huston Inc] - 2175€<br />
* 2020<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored)<br />
* 2019<br />
** [https://www.mundialis.de mundialis] (developer time sponsored: Markus Metz, Markus Neteler, Anika Bettge, Carmen Tawalika)<br />
** [http://spatial-ecology.net/ Spatial-Ecology] - 50€<br />
** [http://www.ideetransfer.net Ideetransfer] - 20€<br />
* 2018<br />
** [https://www.mundialis.de mundialis] (developer time sponsored: Markus Metz, Markus Neteler, Anika Bettge)<br />
* 2013<br />
** [https://www.r3-gis.com/ R3 GIS], Merano, Italy - 300 €<br />
** [https://www.intevation.de Intevation Gmbh], Osnabrück, Germany - 100 €<br />
** [https://www.gter.it GTER srl], Genova, Italy - Donated to the core developers a really beautiful USB key<br />
* 2012<br />
** Stefan Sylla, [http://sylla-consult.de/en/ sylla-consult], Frankfurt, Germany - 500 €<br />
* 2011<br />
** Stefan Sylla, [http://sylla-consult.de/en/ sylla-consult], Frankfurt, Germany - 100 €<br />
** [https://www.r3-gis.com/ R3 GIS], Merano, Italy - 500 €<br />
* 2006<br />
** [https://www.faunalia.it/ Faunalia], Pontedera, Italy: r.li.* toolset development<br />
* 2000-2007<br />
** [https://www.intevation.de/index.en.html Intevation GmbH], Osnabrück: Provided CVS and Request Tracker from 2000-2007<br />
<br />
== Associations which have sponsored GRASS GIS ==<br />
* 2023<br />
** [http://www.fossgis.de FOSSGIS e.V.], D-A-CH, - 5000 euro<br />
** [https://www.osgeo.org/ OSGeo] - 7303 USD<br />
** [https://www.osgeo.jp/ OSGeo Japan] - 550 USD<br />
* 2019<br />
** [https://www.fossgis.de/ FOSSGIS e.V.] - 1091.59 Euro<br />
* 2015<br />
** [https://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 1500 Euro<br />
* 2013<br />
** [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 750 USD<br />
** [http://www.fossgis.de/ FOSSGIS e.V.] - 1.500 Euro<br />
* 2012<br />
** [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 1000 Euro<br />
** [http://www.fossgis.de/ FOSSGIS e.V.] - 1000 Euro<br />
* 2011<br />
** [http://gfoss.it/ GFOSS.it Associazione Italiana per l'Informazione Geografica Libera] - 1400 Euro<br />
** [http://www.fossgis.de FOSSGIS e.V.], D-A-CH, - 500 euro<br />
<br />
== Institutions which have sponsored GRASS GIS ==<br />
<br />
* Czech Technical University in Prague, Faculty of Civil Engineering: Hosting of winGRASS and developer time<br />
* Fondazione Edmund Mach, S. Michele all'Adige (Trento), Italy: Support for the co-development of various GRASS GIS modules<br />
* Municipality of Trento, Italy: Co-funding of GRASS wxGUI development (2005-2012)<br />
* ITC-irst (now FBK), Trento, Italy: Support for the co-development of more than 60 GRASS modules (2002-2012)<br />
* Osaka City University - Orkney Inc. - MEXT, Japan: translation, some wxGUI support<br />
* University of Hannover, Germany: Hosting of GRASS Web site till 2007, support for the co-development of various GRASS modules<br />
<br />
== Google Summer of Code ==<br />
<br />
* Google Inc. through OSGeo (since 2008): [https://trac.osgeo.org/grass/wiki/GSoC several new modules] through their generous 'Google Summer of Code' program.<br />
<br />
=== See also ===<br />
<br />
* Template for [[Community Sprint Funding]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Student_Grants&diff=27276Student Grants2023-11-11T11:39:35Z<p>Neteler: crosslink https://grass.osgeo.org/news/2023_11_09_student_grants_announced/</p>
<hr />
<div>{{toc|right}}<br />
<br />
[[File:Grassgis logo colorlogo text whitebg.png|300px|right|none]]<br />
<br />
GRASS GIS offers a limited number of student grants for projects related to GRASS GIS ([https://grass.osgeo.org/news/2023_11_09_student_grants_announced/ announcement 2023]). These can include actual coding, bug fixing, or documentation and the creation of educational resources.<br />
<br />
== Why to apply ==<br />
<br />
You will:<br />
* receive mentorship by experienced open-source developers;<br />
* gain programming skills;<br />
* be able to add open-source development into your portfolio;<br />
* get stipend.<br />
<br />
== Eligibility ==<br />
<br />
To apply for a grant, a student must:<br />
* be eighteen (18) years of age or older upon application;<br />
* be enrolled into a post-secondary academic program, as of the beginning of the grant;<br />
* for the duration of the grant, be eligible to work in the country in which they reside;<br />
* and not be a [https://trac.osgeo.org/grass/wiki/PSC GRASS GIS Project Steering Committee (PSC)] member.<br />
<br />
In addition, the student has to:<br />
* demonstrate necessary skills and ability to contribute to GRASS GIS through a [https://github.com/OSGeo/grass/pulls GitHub pull request (PR)].<br />
<br />
One person can be awarded one grant at a time, but can apply more than once at different times.<br />
<br />
== Stipend ==<br />
<br />
* The maximum per grant is 1000 USD. Proposals can be for lower amounts.<br />
* The time to complete the grant should be maximum 3 months, but shorter projects are possible. This depends on the money requested and applicant's availability.<br />
* Start date is flexible.<br />
* For the 2023 deadline, GRASS GIS will offer a total of 4000 USD for stipends.<br />
<br />
== Before you apply ==<br />
<br />
* Express your interest in applying through the current GRASS community channels (grass-dev@osgeo.org mailing list, GitHub Discussions, or Gitter).<br />
* Identify a topic matching your interest and skills.<br />
* Look for ways to contribute to GRASS that are related to the selected topic (improve documentation, tests, fix bugs, etc.).<br />
* Submit a PR.<br />
<br />
== How to apply ==<br />
<br />
Students should:<br />
* write their proposals as Google Documents (or similar collaborative online document creation platform) and<br />
* send an email to grass-grants@osgeo.org to notify of their application (with the link to the document).<br />
<br />
The email should contain:<br />
* proof of eligibility<br />
** confirm you are 18 year of age or above and that you can work in the country in which you reside for the duration of the grant<br />
** proof of student status (e.g., scanned PDF)<br />
** link to a GRASS GIS PR or PRs (work in progress is okay at this point)<br />
<br />
The proposal document should contain:<br />
* applicant's name<br />
* description of the proposed work<br />
* timeline with activities and deliverables<br />
* budget proposal<br />
<br />
For timely proposals, applicants will receive feedback from the grants committee and mentors. Changes can be made to the proposal until the deadline.<br />
Proposals can be approved and work started even before the deadline.<br />
<br />
For the current call, applications will be accepted until '''December 31, 2023'''.<br />
<br />
== Approval process ==<br />
<br />
Project proposals are evaluated by the [https://trac.osgeo.org/grass/wiki/PSC GRASS GIS Project Steering Committee] within two weeks after the deadline and a notification will be sent to successful applicants.<br />
<br />
== Stipend payment ==<br />
<br />
Stipend are paid in two amounts (unless stated otherwise for the specific grant):<br />
* 50% at the beginning of the work phase<br />
* 50% after reception and approval of the final report by the PSC<br />
<br />
== Final report ==<br />
<br />
The final report should be also written in the [[Student_Grants/2022|GRASS GIS wiki]] under the proposal up to two weeks after the final date planned originally. When finished, the student sends an email to [https://lists.osgeo.org/pipermail/grass-psc/ grass-psc mailing list] to announce the end of the work and share the link to the final report. The final report should include:<br />
* A description of the state of affairs before the work<br />
* A description of the work done<br />
<br />
== Topics ==<br />
<br />
The GRASS GIS community provides a list of topics highly relevant to the community. Applicants may suggest their own topics.<br />
<br />
List of open topics:<br />
<br />
* Convert manuals from HTML to markdown, including update of related manual building tools<br />
** convert manual files, e.g. with pandoc<br />
** update man building tools accordingly<br />
<br />
* Improve documentation and tests for a set of tools<br />
** includes revising text, add missing/update examples with pictures, notebook how to generate the pictures, add tests (pytest)<br />
** requirements: Python<br />
** $100-200 per tool (proposal should include the total amount requested and budget justification)<br />
** list of suggested tools: r.sim.water, r.reclass, r.resample, r.resamp.filter, r.mask, r.mode, v.surf.idw, v.surf.rst, r.fillnulls, r.surf.*, …<br />
<br />
* r.rescale - reimplement as a wrapper to r.recode (see https://github.com/OSGeo/grass/issues/1986), add tests, examples and documentation<br />
** must include tests and documentation<br />
** requirements: Python<br />
** $500<br />
<br />
* Parallelize a tool with OpenMP<br />
** possible candidates: r.horizon, r.mapcalc, r.proj, v.surf.idw<br />
** must include tests and benchmarks<br />
** requirements: C, OpenMP experience<br />
** $1000 (one tool)<br />
<br />
* Implement ''History manager'' in GRASS GUI<br />
** display history of executed commands and re-execute them<br />
** requirements: Python<br />
** $1000<br />
<br />
* Improve d.vect.chart<br />
** fix legend (see https://github.com/OSGeo/grass/issues/3100), update documentation, add tests<br />
** must include documentation, examples, and basic tests <br />
** requirements: basic C and Python<br />
** $500<br />
<br />
* Add JSON output to different tools in C<br />
** r.report, r.mapsets, r.what, r.univar, r.info, v.info, r3.info<br />
** must include tests and basic documentation<br />
** requirements: C<br />
** $500 for one tool (proposal should include the total amount requested and budget justification)<br />
<br />
See selected topics from past years: [https://trac.osgeo.org/grass/wiki/GSoC/2021/JupyterAndGRASS/MiniGrant2022 Space-Time Dataset Visualization and Improved Interactive Maps for grass.jupyter], [https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/RedesigningStatusbar Redesigning a map display status bar combo box into a new settings dialog]<br />
<br />
== Acknowledgements ==<br />
<br />
The student stipends are sourced from the financial support the GRASS project receives from sponsors on [https://opencollective.com/grass#section-contributors Open Collective] and [https://www.osgeo.org/ the OSGeo Foundation]. Time of mentors is covered by individual mentors or their employers.<br />
<br />
In-kind contributions of personnel time:<br />
<br />
* [https://geospatial.ncsu.edu/ North Carolina State University, Center for Geospatial Analytics]<br />
* [https://geomatics.fsv.cvut.cz/en/ Department of Geomatics], Faculty of Civil Engineering, Czech Technical University in Prague<br />
<br />
Personal time: Vaclav Petras, Anna Petrasova, Helena Mitasova, Stephan Blumentrath, Martin Landa<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]<br />
[[Category:Student Grants]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=User:Neteler&diff=27275User:Neteler2023-11-08T08:56:50Z<p>Neteler: Update user page</p>
<hr />
<div>== Markus Neteler ==<br />
<br />
GRASS GIS [[Team]]<br />
<br />
OSGeo: https://wiki.osgeo.org/wiki/Markus_Neteler<br />
<br />
Work: https://www.mundialis.de/<br />
<br />
Courses: https://courses.neteler.org/<br />
<br />
GRASS GIS book and scientific work: https://grassbook.org/neteler/papers_neteler/</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Sponsors&diff=27268Sponsors2023-10-26T07:40:37Z<p>Neteler: Several new financial contributors added</p>
<hr />
<div>If you, your company or association also want to contribute, whatever the amount, '''you can do so via [https://opencollective.com/grass Open Collective]'''.<br />
<br />
== Individuals who have sponsored GRASS GIS ==<br />
<br />
=== 2023 ===<br />
<br />
Note: these figures are gross figures.<br />
* Ariel Anthieni (28.75 USD)<br />
* Chris (23.00 USD)<br />
* Stephen Mather (27.50 USD)<br />
* Natalie Robbins (28.75 USD)<br />
* Mike Williams (55.00 USD)<br />
* Kevin (28.75 USD)<br />
* Stacy (25.00 USD)<br />
* Spencer Roddan (20.00 USD)<br />
* Robert Dzur (50.00 USD)<br />
* Guest (10 USD)<br />
* bonushenricus (23 USD)<br />
* Omar Tapia (5.75 USD)<br />
* Alberto (5.75 USD)<br />
* Adam B. Smith (23 USD)<br />
* Johannes (23 USD)<br />
* Bon (50 USD)<br />
* OSGeo Japan (550 USD)<br />
* José Ramón (50 USD)<br />
* Peter Löwe (30 USD)<br />
* Evan Kay (10 USD)<br />
* Nick Brady (50 USD)<br />
* Guest (1,750 USD)<br />
* Guest (1,000 USD)<br />
* Johannes Brauner (31 USD)<br />
* MarWe (50 USD)<br />
* Joaquin Perez Valera (5 USD)<br />
* Michele Urbano (20 USD)<br />
* David Allen (10 USD)<br />
* IVEKS PLUS DOO Babusnica (5 USD)<br />
* Chuan-Kai Hsieh (5 USD)<br />
* Qingqing (5 USD)<br />
* Gilbert Armendariz (10 USD)<br />
* Byman (10 USD)<br />
* Robert C Burtch (20 USD)<br />
* Chiara (5 USD)<br />
<br />
=== 2022 ===<br />
* Hernán De Angelis (20 USD)<br />
* Robert Kringel (150 USD)<br />
* Federico Leva (1 USD)<br />
* Nicola Maria D'Angelo (10 USD)<br />
* PaoWulf (10 USD)<br />
* Michele Urbano (20 USD)<br />
* Stefan Blumentrath (50 USD)<br />
* Anonymous (434.65 USD)<br />
<br />
=== 2021 ===<br />
* Chiara Audisio (5€)<br />
* Margherita Di Leo (50€)<br />
* Sabine Vanhuysse (43€)<br />
* Karsten Vennemann (250€)<br />
* Casey Ghilardi (100€)<br />
* Moritz Lennert (10 USD)<br />
* Nikos Alexandris (50 USD)<br />
* Stefan Blumentrath (50 USD)<br />
* Markus Neteler (50 USD)<br />
* Anonymous (55 USD)<br />
<br />
=== 2020 ===<br />
* Daniel McInerney (50€)<br />
* Frank David (50€)<br />
* Chiara Audisio (5€)<br />
* Christopher Kahler (100€)<br />
* Hernán De Angelis (15€)<br />
* Peter Paudits (30€)<br />
* Anonymous (20€)<br />
<br />
=== 2019 ===<br />
* Chiara Audisio (10€)<br />
* Anonymous (15€)<br />
* Stuart Edwards (50€)<br />
* Nicolas Pérenne (8,82€)<br />
* Aldo Clerici (50€)<br />
* Hernán De Angelis (15€)<br />
* Andre Mano (15€)<br />
* Donal Bisanzio (50€)<br />
* Francesco Paolo Lovergine (50€)<br />
* Paulo van Breugel (15€)<br />
* Margherita Di Leo (100€)<br />
* Mike Spencer (20€)<br />
* Valentin Lucet (5€)<br />
* Jose Martinez Batlle (20€)<br />
* Loïc Bartoletti (20€)<br />
* Jorge Gaspar Sanz Salinas (20€)<br />
* Ghislain Vieilledent (15€)<br />
* Nikolaos Alexandris (111€)<br />
* Rengifo Ortega (25€)<br />
* Fowad Ahmed (10€)<br />
* Arnd Weber (111,11€)<br />
* Helena Mitasova (300€)<br />
* Peter Tittmann (20€)<br />
* Aasmund Hegnar (10€)<br />
<br />
=== 2015 ===<br />
* Johannes Brauner (?)<br />
* OSGeo community members (about 100€)<br />
<br />
=== 2014 ===<br />
* Micro-donations via [http://grass.osgeo.org/donations PayPal] or [http://grass.osgeo.org/news/31/15/Call-for-sponsors/ direct bank transfer], total of 325 Euro:<br />
** Pietro Blu Giandonato<br />
** Johannes Radinger<br />
** Alessandro Fanna<br />
** Mark Seibel<br />
** Johannes Brauner<br />
** Ivan Marchesini<br />
** Luca Casagrande<br />
** Veronica Andreo<br />
** David Adams<br />
** Massimo Di Stefano<br />
** Stefan Blumentrath<br />
** Scott Mitchell<br />
<br />
=== 2013 ===<br />
* Anonymous donor - 100 euro<br />
* Flavio Rigolon - 30 euro<br />
* Nobusuke Iwasaki - 200 euro<br />
* Giuliano Urgeghe - 50 euro<br />
* Peter Löwe - 50 EUR<br />
* Andrea Borruso - 25 EUR<br />
* Massimo Di Stefano - 30 EUR<br />
* Alessandro Sarretta - 5 EUR<br />
* Joshua Campbell - 50 EUR<br />
* Andreas Neumann - 75 EUR<br />
* Jon Eiriksson - 50 EUR<br />
* Luca Casagrande - 30 EUR<br />
* Karyn O Newcomb - 5 EUR<br />
* Holger Naumann - 25 EUR<br />
* Anne Ghisla - 190 EUR<br />
* Helena Mitasova and Lubos Mitas - 200EUR<br />
* Dimitris Tamp - 50 EUR<br />
* Mark Seibel - 10 EUR<br />
* Tawny Gapinski - 3EUR<br />
* Markus Metz - 40 EUR<br />
<br />
== Companies which have sponsored GRASS GIS ==<br />
<br />
*2022<br />
** [http://geophom.fr/ GEOPHOM] - 400 USD<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored) <br />
*2021<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored) <br />
** [http://www.indotechsa.com/ Indotechsa] - 25€<br />
** Tres Techies SL - 50€<br />
** [https://bhinc.com/ Bohannan Huston Inc] - 2175€<br />
* 2020<br />
** [https://www.mundialis.de mundialis] (lot's of developer time sponsored)<br />
* 2019<br />
** [https://www.mundialis.de mundialis] (developer time sponsored: Markus Metz, Markus Neteler, Anika Bettge, Carmen Tawalika)<br />
** [http://spatial-ecology.net/ Spatial-Ecology] - 50€<br />
** [http://www.ideetransfer.net Ideetransfer] - 20€<br />
* 2018<br />
** [https://www.mundialis.de mundialis] (developer time sponsored: Markus Metz, Markus Neteler, Anika Bettge)<br />
* 2013<br />
** [https://www.r3-gis.com/ R3 GIS], Merano, Italy - 300 €<br />
** [https://www.intevation.de Intevation Gmbh], Osnabrück, Germany - 100 €<br />
** [https://www.gter.it GTER srl], Genova, Italy - Donated to the core developers a really beautiful USB key<br />
* 2012<br />
** Stefan Sylla, [http://sylla-consult.de/en/ sylla-consult], Frankfurt, Germany - 500 €<br />
* 2011<br />
** Stefan Sylla, [http://sylla-consult.de/en/ sylla-consult], Frankfurt, Germany - 100 €<br />
** [https://www.r3-gis.com/ R3 GIS], Merano, Italy - 500 €<br />
* 2006<br />
** [https://www.faunalia.it/ Faunalia], Pontedera, Italy: r.li.* toolset development<br />
* 2000-2007<br />
** [https://www.intevation.de/index.en.html Intevation GmbH], Osnabrück: Provided CVS and Request Tracker from 2000-2007<br />
<br />
== Associations which have sponsored GRASS GIS ==<br />
* 2023<br />
** [http://www.fossgis.de FOSSGIS e.V.], D-A-CH, - 5000 euro<br />
** [https://www.osgeo.org/ OSGeo] - 7303 USD<br />
** [https://www.osgeo.jp/ OSGeo Japan] - 550 USD<br />
* 2019<br />
** [https://www.fossgis.de/ FOSSGIS e.V.] - 1091.59 Euro<br />
* 2015<br />
** [https://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 1500 Euro<br />
* 2013<br />
** [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 750 USD<br />
** [http://www.fossgis.de/ FOSSGIS e.V.] - 1.500 Euro<br />
* 2012<br />
** [http://www.osgeo.org/ Open Source Geospatial Foundation] (OSGeo) - 1000 Euro<br />
** [http://www.fossgis.de/ FOSSGIS e.V.] - 1000 Euro<br />
* 2011<br />
** [http://gfoss.it/ GFOSS.it Associazione Italiana per l'Informazione Geografica Libera] - 1400 Euro<br />
** [http://www.fossgis.de FOSSGIS e.V.], D-A-CH, - 500 euro<br />
<br />
== Institutions which have sponsored GRASS GIS ==<br />
<br />
* Czech Technical University in Prague, Faculty of Civil Engineering: Hosting of winGRASS and developer time<br />
* Fondazione Edmund Mach, S. Michele all'Adige (Trento), Italy: Support for the co-development of various GRASS GIS modules<br />
* Municipality of Trento, Italy: Co-funding of GRASS wxGUI development (2005-2012)<br />
* ITC-irst (now FBK), Trento, Italy: Support for the co-development of more than 60 GRASS modules (2002-2012)<br />
* Osaka City University - Orkney Inc. - MEXT, Japan: translation, some wxGUI support<br />
* University of Hannover, Germany: Hosting of GRASS Web site till 2007, support for the co-development of various GRASS modules<br />
<br />
== Google Summer of Code ==<br />
<br />
* Google Inc. through OSGeo (since 2008): [https://trac.osgeo.org/grass/wiki/GSoC several new modules] through their generous 'Google Summer of Code' program.<br />
<br />
=== See also ===<br />
<br />
* Template for [[Community Sprint Funding]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki&diff=27267GRASS-Wiki2023-10-25T18:11:05Z<p>Neteler: GRASS GIS 8.3.1 released</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|-<br />
| width="68%" style="vertical-align:top" |<br />
<div style="margin:0; margin-right:10px; border:1px solid #dfdfdf; background-color:#f8f8ff;"><br />
<br />
<div style="padding:0.3em 1em 0.7em 1em;"><br />
<br />
[[Image:grasslogo_vector_small.png|right|link=https://grass.osgeo.org]]<br />
<br />
=== Welcome to the GRASS GIS Users Wiki ===<br />
<br />
{{website|documentation/general-overview|'''GRASS GIS'''}} is a [http://en.wikipedia.org/wiki/Geographic_information_system Geographic Information System] used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.<br />
<br />
On this Wiki, you can get and contribute to GRASS related information, documents and community provided add-ons programs. In case you wish edit here, you need to register and login first (see top right link).<br />
<br />
For GRASS GIS at a glance, see [[core features]]. For usage examples, see the [https://grass.osgeo.org/learn/gallery/ screenshot gallery] and [[Applications]]. And also visit the [https://grass.osgeo.org main GRASS GIS website].<br />
<br />
<!-- broken in 2020<br />
Wiki read-only mirror (updated daily): http://grass.fsv.cvut.cz/wiki-mirror/<br />
--><br />
</div><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFE5E5;"><br />
'''What's hot:'''<br />
* <font size="+1">[https://github.com/OSGeo/grass/releases/tag/8.3.1 '''GRASS GIS 8.3.1''' is available!]</font> {{bullet}} [https://grass.osgeo.org/download/ download] {{bullet}} [https://github.com/OSGeo/grass/issues report any problems]<br />
<!-- <br />
* [https://trac.osgeo.org/grass/wiki/Grass8/NewFeatures80 List of features introduced in GRASS GIS 8.0.0] (included in 8.x)<br />
* [https://grass.osgeo.org/news/58/15/GRASS-GIS-6-4-6-released/ '''GRASS GIS 6.4.6''' is here!] {{bullet}} [https://grass.osgeo.org/download download]<br />
* Complete: [[GRASS SoC Ideas 2018|Google Summer of Code 2018]]: New [[GRASS_GSoC_2013_GRASS_GIS_Interactive_Scatter_Plot_Tool|scatterplot]] and [[GRASS_GSoC_2013_Temporal_GIS_Algebra_for_raster_and_vector_data_in_GRASS|temporal algebra]] tools --><br />
* Explore [https://grass.osgeo.org/learn/ learning resources at the main page].<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
==== User Documentation and Support ====<br />
* [[GRASS Help|GRASS Help and Getting Started]]<br />
* [[GRASS Documents|In depth GRASS Documentation]]<br />
* [[Installation Guide]] for precompiled binaries<br />
* '''[[Faq|FAQ]] - Frequently Asked Questions'''<br />
* [[Applications]] - use cases of GRASS in various disciplines<br />
* [[wxGUI]] - Graphical User Interface based on wxPython<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Community ====<br />
* [[GRASS Community]]: Getting in touch<br />
* [[Applications|Research applications]]: What people are doing with GRASS<br />
* [[GRASS migration hints|Migrating to GRASS]]<br />
* [[GRASS Blogger]]<br />
* Get involved: [[Project jobs]]<br />
* [https://grass.osgeo.org/wiki/Special:Recentchanges?feed=rss RSS feed] of recent changes of this Wiki<br />
</div><br />
<br />
<br />
<div>Have a look at the GRASS GIS users worldwide [https://grass.osgeo.org/community GRASS GIS User Online]. If you operate a GRASS GIS installation, you are welcome to enter your user data there. <br />
</div><br />
<br />
<div><p>''[[GRASS-Wiki:Language policy|Translate this Wiki]]''</p></div><br />
<br />
<!-- RIGHT COLUMN --><br />
| width="38%" style="vertical-align:top" |<br />
<div style="margin:0; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:osgeo_logo.png|center|220px|link=http://www.osgeo.org]]<br />
<center>[http://www.osgeo.org OSGeo] Foundation Project</center><br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:1em 1em 1em 1em; background-color:#f8f8ff;"><br />
[[Image:Btn_donate_SM.gif|center|link=https://grass.osgeo.org/donations/]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#f8f8ff;"><br />
* [https://grass.osgeo.org/screenshots GRASS Screenshots]<br />
* [https://github.com/OSGeo/grass/ GitHub] Source Code Repository<br />
* [https://grass.osgeo.org/support/mailing-lists Mailing lists] and [[IRC]]<br />
* [https://github.com/OSGeo/grass/issues Report errors or wishes]<br />
* [https://github.com/OSGeo/grass/blob/main/COPYING Licensed under GNU GPL]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Download ====<br />
* [https://grass.osgeo.org/download Source code and binaries]<br />
* '''[[AddOns]]'''<br />
* [[Promotional material]]<br />
* [[Sample datasets]]<br />
* [[Global datasets]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
<br />
==== Development ====<br />
* [[Compile and Install]] of Source Code<br />
* [[Development|GRASS Development]] intro<br />
* [http://trac.osgeo.org/grass/wiki GRASS-trac]: the development Wiki, bugtracker, source code browser<br />
* [[Release Roadmap]]<br />
* [[GRASS 7 ideas collection]]<br />
* [[GRASS SoC Ideas|Google Summer of Code ideas collection]]<br />
* [http://trac.osgeo.org/grass/wiki/HowToContribute How to contribute to GRASS development] (getting write access and such)<br />
</div><br />
<br />
<!--<br />
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;"><br />
Project Metrics provided by [https://www.openhub.net/p/grass_gis Ohloh].<br />
<br />
{{#widget:Ohloh Project|id=3666|type=partner_badge}}<br />
</div><br />
--><br />
|}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Tools_for_Python_programming&diff=27264Tools for Python programming2023-10-17T08:22:26Z<p>Neteler: /* PyCharm IDE */ add GRASS GIS 8 support</p>
<hr />
<div>To help with finding broken code, unused variables and other problems, there are several tools available. Described tools are free and open source and usually widely available in GNU/Linux distribution repositories or through pip. They can be connected to some code editor or run separately from command line. Some editors integrate some of these tools. Generally, all tools need to be run from a GRASS session. <br />
<br />
== pep8 for checking of style ==<br />
<br />
Checks the basic correctness and style of Python code according to [http://www.python.org/dev/peps/pep-0008/ PEP 8 -- Style Guide for Python Code].<br />
<br />
<source lang="bash"><br />
pep8 lmgr/toolbars.py<br />
</source><br />
<br />
'''Please see https://trac.osgeo.org/grass/wiki/Submitting/Python for GRASS GIS specific details.'''<br />
<br />
== Pylint static checker ==<br />
<br />
''Main article: [[Pylint rc file for GRASS]]''<br />
<br />
Pylint is a tool for static source code analysis. It provides wide range of analysis and is highly customizable. It is integrated to some Python editors.<br />
<br />
== cProfile profiling tool ==<br />
<br />
cProfile is a Python profiling tool. It can be used directly in your Python source code or from the command line. The output can be processed by the gprof2dot tool which generates call graph in dot (depends on Graphviz is necessary to render the graph).<br />
<br />
For Ubuntu, Graphviz and cProfile are available in repository (graphviz and python-profiler packages). gprof2dot tool needs to be installed through pip (<tt>sudo pip install gprof2dot</tt>).<br />
<br />
<source lang="bash"><br />
# does the actual profiling<br />
python -m cProfile -o output.pstats my_python_script.py --various-my-script-parameters foo bar<br />
<br />
# creates a callgraph with profiling info (filtered)<br />
gprof2dot -f pstats output.pstats | dot -Tpng -o gprof2dot_output.png<br />
</source><br />
<br />
<source lang="bash"><br />
#!/bin/bash<br />
<br />
# Usage:<br />
# ./python-profile.sh your_python_script.py and its parameters<br />
# need to run in the directory which contains profiled script <br />
<br />
OUTFILE=$(basename $1 .py)_profile<br />
<br />
python -m cProfile -o $OUTFILE.pstats $* \<br />
&& gprof2dot -f pstats $OUTFILE.pstats > $OUTFILE.dot \<br />
&& dot -Tpng -o $OUTFILE.png $OUTFILE.dot \<br />
&& dot -Tpdf -o $OUTFILE.pdf $OUTFILE.dot<br />
</source><br />
<br />
== Pyreverse static checker ==<br />
<br />
Needs to run in distribution directory.<br />
<br />
Note that it shows only import and usage dependencies. Because of the Python dynamic typing it is not possible to find dependency on particular object interface when the object is not created but only passed to a function or object constructor.<br />
<br />
<source lang="bash"><br />
cd dist.../etc/gui/wxpython<br />
pyreverse -o pdf -p wxgui --only-classnames core/ gui_core/ lmgr/ mapdisp/<br />
</source><br />
<br />
== PyCharm IDE ==<br />
<br />
[https://www.jetbrains.com/pycharm/ PyCharm] is a editor, or better to say IDE, for Python with large number of tools integrated into it. <br />
<br />
* GRASS GIS 7: e.g., GRASS 7.8.8 comes on MS Windows with a new BAT initialization 'python-grass78.bat' file which can be used for setting up the PyCharm environment.<br />
* GRASS GIS 8: e.g., GRASS 8.3.0 comes on MS Windows with a new BAT initialization 'python-grass83.bat' file which can be used for setting up the PyCharm environment.<br />
<br />
Create a new PyCharm project (''File -> New Project'').<br />
<br />
{{fig|pycharm-create-new-project-0|Go to 'Existing interpreter' section and click on '...'}}<br />
<br />
{{fig|pycharm-create-new-project-1|Click on '...' in 'System Interpreter' section and choose 'C:\OSGeo4W64\bin\python-grass78.bat' file}}<br />
<br />
{{fig|pycharm-create-new-project-2|Click on 'Create' in order to create a new PyCharm project}}<br />
<br />
Add a new Python file into the created project by ''File -> New''. See a sample Python script below. This script creates a new temporary GRASS location and prints the settings. Then, the temporary location is deleted.<br />
<br />
<source lang="python"><br />
import os<br />
import tempfile<br />
import shutil<br />
import grass.script as gs<br />
import grass.script.setup as gsetup<br />
<br />
# create temporary location<br />
dbase=tempfile.gettempdir()<br />
location='demo'<br />
gsetup.init(os.environ['GISBASE'], dbase, location, 'PERMANENT')<br />
gs.create_location(dbase, location)<br />
print(gs.gisenv())<br />
<br />
# remove location<br />
shutil.rmtree(os.path.join(dbase, location))<br />
</source><br />
<br />
{{fig|pycharm-launch-dialog|Go to ''Run -> Run'' and choose a script to run}}<br />
<br />
{{fig|pycharm-launch-script|Example of GRASS script run from PyCharm environment|size=800px}}<br />
<br />
== Spyder editor ==<br />
<br />
[https://www.spyder-ide.org/ Spyder] is a editor, or better to say IDE, for Python with large number of tools integrated into it. To get better results, you should run Spyder within a GRASS GIS session. It has an integrated pylint tool to verify the source code instantly for undefined or unused variables, wrong indentation and more. <br />
<br />
* Linux: many distributions provide "spyder" as a package for easy installation.<br />
* Windows: you may also install Spyder as part of [http://winpython.sourceforge.net/ WinPython]<br />
* ...<br />
<br />
'''Important''': Change the editor settings from 'tab' to ''''4 spaces'''' (according to the style guide at https://trac.osgeo.org/grass/wiki/Submitting/Python):<br />
* Menu Tools > Preferences > Editor > Advanced Settings: Indentation characters: 4 spaces<br />
<br />
An ideal way how to run Spyder within a GRASS session ('<tt>.</tt>' can by replaced by any directory):<br />
spyder -w . 2>/dev/null &<br />
<br />
== Eric Python IDE ==<br />
<br />
"Eric is a full featured Python and Ruby editor and IDE, written in python":<br />
<br />
* http://eric-ide.python-projects.org/eric-screenshots.html<br />
<br />
== Simple Python Editor in GRASS GIS ==<br />
<br />
[[File:Simple python editor v buffer.png|300px|thumb|right|Simple Python editor with the interactive Python shell (console) in the background]]<br />
<br />
Since GRASS GIS 7.2, there is an embedded editor for Python in GRASS GIS with basic set of editing features. It is aimed towards beginners and contains examples and templates. User scripts and newly developed GRASS GIS modules can be executed in the (command) Console tab directly from the editor.<br />
<br />
{{Python}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Tools_for_Python_programming&diff=27263Tools for Python programming2023-10-15T20:21:47Z<p>Neteler: /* PyCharm IDE */ python-grass79.bat -> python-grass78.bat</p>
<hr />
<div>To help with finding broken code, unused variables and other problems, there are several tools available. Described tools are free and open source and usually widely available in GNU/Linux distribution repositories or through pip. They can be connected to some code editor or run separately from command line. Some editors integrate some of these tools. Generally, all tools need to be run from a GRASS session. <br />
<br />
== pep8 for checking of style ==<br />
<br />
Checks the basic correctness and style of Python code according to [http://www.python.org/dev/peps/pep-0008/ PEP 8 -- Style Guide for Python Code].<br />
<br />
<source lang="bash"><br />
pep8 lmgr/toolbars.py<br />
</source><br />
<br />
'''Please see https://trac.osgeo.org/grass/wiki/Submitting/Python for GRASS GIS specific details.'''<br />
<br />
== Pylint static checker ==<br />
<br />
''Main article: [[Pylint rc file for GRASS]]''<br />
<br />
Pylint is a tool for static source code analysis. It provides wide range of analysis and is highly customizable. It is integrated to some Python editors.<br />
<br />
== cProfile profiling tool ==<br />
<br />
cProfile is a Python profiling tool. It can be used directly in your Python source code or from the command line. The output can be processed by the gprof2dot tool which generates call graph in dot (depends on Graphviz is necessary to render the graph).<br />
<br />
For Ubuntu, Graphviz and cProfile are available in repository (graphviz and python-profiler packages). gprof2dot tool needs to be installed through pip (<tt>sudo pip install gprof2dot</tt>).<br />
<br />
<source lang="bash"><br />
# does the actual profiling<br />
python -m cProfile -o output.pstats my_python_script.py --various-my-script-parameters foo bar<br />
<br />
# creates a callgraph with profiling info (filtered)<br />
gprof2dot -f pstats output.pstats | dot -Tpng -o gprof2dot_output.png<br />
</source><br />
<br />
<source lang="bash"><br />
#!/bin/bash<br />
<br />
# Usage:<br />
# ./python-profile.sh your_python_script.py and its parameters<br />
# need to run in the directory which contains profiled script <br />
<br />
OUTFILE=$(basename $1 .py)_profile<br />
<br />
python -m cProfile -o $OUTFILE.pstats $* \<br />
&& gprof2dot -f pstats $OUTFILE.pstats > $OUTFILE.dot \<br />
&& dot -Tpng -o $OUTFILE.png $OUTFILE.dot \<br />
&& dot -Tpdf -o $OUTFILE.pdf $OUTFILE.dot<br />
</source><br />
<br />
== Pyreverse static checker ==<br />
<br />
Needs to run in distribution directory.<br />
<br />
Note that it shows only import and usage dependencies. Because of the Python dynamic typing it is not possible to find dependency on particular object interface when the object is not created but only passed to a function or object constructor.<br />
<br />
<source lang="bash"><br />
cd dist.../etc/gui/wxpython<br />
pyreverse -o pdf -p wxgui --only-classnames core/ gui_core/ lmgr/ mapdisp/<br />
</source><br />
<br />
== PyCharm IDE ==<br />
<br />
[https://www.jetbrains.com/pycharm/ PyCharm] is a editor, or better to say IDE, for Python with large number of tools integrated into it. <br />
<br />
GRASS 7.8.3 comes on MS Windows with a new BAT initialization 'python-grass78.bat' file which can be used for setting up the PyCharm environment.<br />
<br />
Create a new PyCharm project (''File -> New Project'').<br />
<br />
{{fig|pycharm-create-new-project-0|Go to 'Existing interpreter' section and click on '...'}}<br />
<br />
{{fig|pycharm-create-new-project-1|Click on '...' in 'System Interpreter' section and choose 'C:\OSGeo4W64\bin\python-grass78.bat' file}}<br />
<br />
{{fig|pycharm-create-new-project-2|Click on 'Create' in order to create a new PyCharm project}}<br />
<br />
Add a new Python file into the created project by ''File -> New''. See a sample Python script below. This script creates a new temporary GRASS location and prints the settings. Then, the temporary location is deleted.<br />
<br />
<source lang="python"><br />
import os<br />
import tempfile<br />
import shutil<br />
import grass.script as gs<br />
import grass.script.setup as gsetup<br />
<br />
# create temporary location<br />
dbase=tempfile.gettempdir()<br />
location='demo'<br />
gsetup.init(os.environ['GISBASE'], dbase, location, 'PERMANENT')<br />
gs.create_location(dbase, location)<br />
print(gs.gisenv())<br />
<br />
# remove location<br />
shutil.rmtree(os.path.join(dbase, location))<br />
</source><br />
<br />
{{fig|pycharm-launch-dialog|Go to ''Run -> Run'' and choose a script to run}}<br />
<br />
{{fig|pycharm-launch-script|Example of GRASS script run from PyCharm environment|size=800px}}<br />
<br />
== Spyder editor ==<br />
<br />
[https://www.spyder-ide.org/ Spyder] is a editor, or better to say IDE, for Python with large number of tools integrated into it. To get better results, you should run Spyder within a GRASS GIS session. It has an integrated pylint tool to verify the source code instantly for undefined or unused variables, wrong indentation and more. <br />
<br />
* Linux: many distributions provide "spyder" as a package for easy installation.<br />
* Windows: you may also install Spyder as part of [http://winpython.sourceforge.net/ WinPython]<br />
* ...<br />
<br />
'''Important''': Change the editor settings from 'tab' to ''''4 spaces'''' (according to the style guide at https://trac.osgeo.org/grass/wiki/Submitting/Python):<br />
* Menu Tools > Preferences > Editor > Advanced Settings: Indentation characters: 4 spaces<br />
<br />
An ideal way how to run Spyder within a GRASS session ('<tt>.</tt>' can by replaced by any directory):<br />
spyder -w . 2>/dev/null &<br />
<br />
== Eric Python IDE ==<br />
<br />
"Eric is a full featured Python and Ruby editor and IDE, written in python":<br />
<br />
* http://eric-ide.python-projects.org/eric-screenshots.html<br />
<br />
== Simple Python Editor in GRASS GIS ==<br />
<br />
[[File:Simple python editor v buffer.png|300px|thumb|right|Simple Python editor with the interactive Python shell (console) in the background]]<br />
<br />
Since GRASS GIS 7.2, there is an embedded editor for Python in GRASS GIS with basic set of editing features. It is aimed towards beginners and contains examples and templates. User scripts and newly developed GRASS GIS modules can be executed in the (command) Console tab directly from the editor.<br />
<br />
{{Python}}</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Mentoring_Program&diff=27250Mentoring Program2023-10-11T21:05:30Z<p>Neteler: added :Category: Community</p>
<hr />
<div>{{toc|right}}<br />
<br />
[[File:Grassgis logo colorlogo text whitebg.png|300px|right|none]]<br />
<br />
The GRASS GIS project offers a mentoring program to help students, researchers, and software developers integrate GRASS GIS into their projects.<br />
<br />
''The mentors hope to grow the GRASS community, so if you are new to GRASS GIS or open-source development in general, this program is for you.''<br />
<br />
== Topics ==<br />
<br />
The use cases include (but are not limited to):<br />
* developing workflow that uses GRASS GIS e.g., through Python, Bash, R API,<br />
* contributing a research tool for GRASS GIS in Python, C, or C++,<br />
* help with running GRASS GIS on a high-performance cluster,<br />
* integrating GRASS GIS in another software.<br />
<br />
<br />
== Why to Apply ==<br />
<br />
You will:<br />
<br />
* receive mentorship by experienced GRASS developers;<br />
* work on a project of your choice;<br />
* use GRASS GIS in the most efficient way for your use case;<br />
<br />
Additionally, you may be able to turn a part of your project into a contribution to GRASS GIS. If you do that, you will:<br />
<br />
* make your work more accessible;<br />
* preserve your work for future;<br />
* get recognition for open-source contribution.<br />
<br />
== Mentoring ==<br />
<br />
Mentoring will be provided free of charge by experienced GRASS developers in one-on-one setting allowing for remote and asynchronous communication.<br />
<br />
Mentors will work with participants to select the most appropriate and efficient tools and techniques to run and integrate GRASS tools into the participants' workflow and provide advice and feedback during the implementation. Mentors will try to be flexible to accommodate the timing of participants' projects.<br />
<br />
== Eligibility ==<br />
<br />
The program is open to people from all walks of life regardless of employment or student status. Projects on beginner technical level are welcome. You may be asked to demonstrate your skills for more advanced projects.<br />
<br />
The project must use GRASS GIS or contribute to GRASS GIS. Mentors are not able to support other parts of the project, e.g. research aspect or interfacing other software, as part of this program.<br />
<br />
The project and applicant eligibility is evaluated by the mentors who may suggest the applicant to modify the proposed topic to make it more suitable for the program or applicant skill set. The final decision on eligibility, admission, and continuation is at the discretion of the mentors.<br />
<br />
== How to Apply ==<br />
<br />
Fill out [https://forms.gle/Mqri1k9p3uMwr8gG6 the application form] or contact mentors directly (see below).<br />
<br />
== Mentors ==<br />
<br />
* [https://wiki.osgeo.org/wiki/Anna_Petrasova Anna Petrasova]<br />
* [https://wiki.osgeo.org/wiki/User:Wenzeslaus Vaclav Petras]<br />
<br />
== Acknowledgements ==<br />
<br />
The funding to cover the time of mentors is provided by the U.S. National Science Foundation, award 2303651.<br />
[[File:NSF Official logo.png|frameless|left]]<br />
<br />
[[Category: Community]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&diff=27229Compile and Install2023-10-10T15:36:40Z<p>Neteler: /* Linux Mint */</p>
<hr />
<div><!-- {{MoveToTrac}} --><br />
<br />
'''Disclaimer''': This page explains how to turn the GRASS GIS source code into an installable binary package ("compilation") for different operating systems. If you just want to get ready-to-use binaries, go [https://grass.osgeo.org/download/ here], otherwise read on...<br />
<br />
== How to do compilation and installation of GRASS GIS? ==<br />
<br />
Here we explain the procedure to compile GRASS from GitHub, but it also applies to official GRASS 7 releases.<br />
<br />
''For installation of precompiled binary packages, see the main [[Installation Guide]].''<br />
<br />
For detailed information on compilation, please see the [https://github.com/OSGeo/grass/blob/master/INSTALL INSTALL] file in the source code.<br />
<br />
=== Prerequisites ===<br />
<br />
==== Extra libraries ====<br />
GRASS GIS needs at least two extra libraries: PROJ and GDAL/OGR. It is recommended to download them as ready-to-use packages for your software platform (Linux distribution, Windows, Mac...).<br />
<br />
Other libraries needed to run GRASS are listed on the [http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html requirements page].<br />
<br />
To compile, you will also need the respective "-devel" packages; see below for details.<br />
<br />
==== Download GRASS GIS source code ====<br />
<br />
First, [https://grass.osgeo.org/download/ download the GRASS GIS source code].<br />
<br />
=== Generic Compilation and installation procedure ===<br />
<br />
* It is wise that compilation processes are carried out as a normal user: If you want to get the source code in a place where you do not have write permissions (e.g. in /usr/local/src/) just follow this:<br />
cd /usr/local/src/ <br />
su -c 'mkdir grass7'<br />
su -c 'chown yourlogin:yourgroup grass7'<br />
<br />
Otherwise if you have permissions just continue as a normal user:<br />
mkdir $HOME/src<br />
cd $HOME/src/<br />
git clone https://github.com/OSGeo/grass.git grass_master<br />
<br />
* run configure with parameters to adapt the compile process to your own system. To see what options can be passed to it, run:<br />
./configure --help | less <br />
<br />
<br />
<!-- The minimum set of configure parameters is <br />
./configure ### --><br />
It may (!) look like this:<br />
<br />
./configure \<br />
--with-cxx \<br />
--with-sqlite \<br />
--with-python \<br />
--with-geos \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype \<br />
--with-freetype-includes=/usr/include/freetype2 \<br />
--with-proj --with-proj-share=/usr/share/proj<br />
<br />
You may have to explicitly state the path for certain packages (i.e., gdal). The Unix 'locate' command will come in handy for finding the path of the package you need (you may have to run locate as root ex: sudo locate gdal-config).<br />
<br />
Please note that the paths mentioned may widely vary due to the distribution used.<br />
See [[Compile_and_Install#Platform_Specific_Notes|Platform Specific Notes]] below.<br />
<br />
Depending on your needs it may be a good idea to include debugging hooks.<br />
: See [[GRASS_Debugging#Compile_Time_Setup]].<br />
CFLAGS="-ggdb -Wall -Werror-implicit-function-declaration" ./configure ...<br />
<br />
<br />
At the end of configuration process you should get report not much different from this:<br />
<br />
GRASS is now configured for: x86_64-pc-linux-gnu<br />
<br />
Source directory: /home/user/software/grass_master<br />
Build directory: /home/user/software/grass_master<br />
Installation directory: ${prefix}/grass79<br />
Startup script in directory:${exec_prefix}/bin<br />
C compiler: gcc -O2 -march=native -std=gnu99 -fexceptions -fstack-protector -m64 -fdiagnostics-color <br />
C++ compiler: c++ -g -Wall<br />
Building shared libraries: yes<br />
OpenGL platform: X11<br />
<br />
MacOSX application: no<br />
MacOSX architectures: <br />
MacOSX SDK: <br />
<br />
BLAS support: yes<br />
BZIP2 support: no<br />
C++ support: yes<br />
Cairo support: yes<br />
DWG support: no<br />
FFTW support: yes<br />
FreeType support: yes<br />
GDAL support: yes<br />
GEOS support: yes<br />
[...]<br />
<br />
* Let's compile it (takes a little while...)!<br />
make -j2<br />
* At the end, you should get report not much different from this:<br />
----------------------------------------------------------------------<br />
Following modules are missing the 'description.html' file in src code:<br />
----------------------------------------------------------------------<br />
GRASS GIS compilation log<br />
-------------------------<br />
Started compilation: Mon 19 Aug 2019 10:47:57 PM CEST<br />
--<br />
Errors in:<br />
No errors detected.<br />
--<br />
Finished compilation: Mon 19 Aug 2019 10:55:12 PM CEST<br />
(In case of errors please change into the directory with error and run 'make')<br />
<br />
* If there is any error, change directory to directory with error and run "make" again. Report occurring bug to GRASS mailing list<br />
* Once the installation process is finished, you're ready to install GRASS system wide.<br />
su -c 'make install'<br />
* enjoy GRASS: <br />
grass79<br />
<br />
=== What else? ===<br />
<br />
If you want to use [http://www.qgis.org QGIS], then also compile the GRASS-GDAL/OGR plugin. This is also useful to access your GRASS-data<br />
from other application using GDAL/OGR like [http://thuban.intevation.de thuban].<br />
* [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]] (enables QGIS to read GRASS data directly)<br />
<br />
=== Compile and install GDAL-GRASS plugin ===<br />
<br />
* See [[Compile and install GDAL-GRASS plugin]]<br />
<br />
=== Platform Specific Notes ===<br />
<br />
==== Linux ====<br />
<br />
Linux comes in various flavours, i.e. distributions.<br />
<br />
===== Distribution related packaging =====<br />
<br />
* Arch Linux: https://github.com/czka/AUR-grass7<br />
* Centos: https://src.fedoraproject.org/rpms/grass<br />
* Debian: https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging<br />
* EPEL: https://src.fedoraproject.org/rpms/grass<br />
* Fedora: https://src.fedoraproject.org/rpms/grass<br />
* Ubuntu: https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging<br />
<br />
===== Alpine Linux =====<br />
<br />
<source lang="bash"><br />
# install compiler tools and libraries<br />
apk add build-base bzip2-dev cairo-dev fftw-dev freetype-dev g++ gcc gdal-dev geos-dev git \<br />
gnutls-dev libc6-compat libjpeg-turbo-dev libpng-dev make openjpeg-dev openblas-dev \<br />
postgresql-dev proj-dev python3-dev py3-numpy-dev sqlite-dev tar tiff-dev unzip vim \<br />
wget zip zstd-dev<br />
<br />
# install needed tools and libraries when using GRASS GIS<br />
apk add attr bash bison bzip2 cairo curl fftw flex freetype gdal gdal-tools gettext geos gnutls \<br />
jsoncpp libbz2 libexecinfo libjpeg-turbo libpng libunwind musl musl-utils ncurses openjpeg \<br />
openblas py3-numpy py3-pillow py3-six postgresql proj-datumgrid proj-util sqlite sqlite-libs \<br />
subversion tiff zstd zstd-libs<br />
<br />
# get source code<br />
cd ~<br />
wget -c https://grass.osgeo.org/grass78/source/snapshot/grass-7.8.git_src_snapshot_latest.tar.gz<br />
<br />
# unpack<br />
tar xvfz grass-7.8.git_src_snapshot_latest.tar.gz<br />
rm -f grass-7.8.git_src_snapshot_latest.tar.gz<br />
<br />
# change into source code (update path name as needed)<br />
cd grass-7.8.git_src_snapshot_2021_05_01/<br />
<br />
# minimal configuration<br />
./configure \<br />
--with-cxx \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-geos \<br />
--with-sqlite \<br />
--without-nls \<br />
--without-wxwidgets \<br />
--without-fftw \<br />
--without-cairo \<br />
--without-freetype \<br />
--enable-largefile \<br />
--without-opengl \<br />
--without-odbc<br />
<br />
# compilation<br />
nice make -j2<br />
</source><br />
<br />
===== Arch Linux =====<br />
<br />
* <big>'''Easiest method : use AUR (Arch User Repository) package'''</big><br />
Up-to-date links to Arch Linux GRASS PKGBUILDs are on https://grass.osgeo.org/download/software/linux/.<br />
<br />
Please note that at this time AUR package has a problem : a symlink of python2 is created to work with grass whereas executable script call python3 ... Workaround is to comment symlink in AUR GRASS PKGBUILD<br />
<br />
* <big>'''Compile from source code'''</big><br />
If you want to compile it yourself, you could follow steps below : <br />
<br />
Install dependencies : <br />
pacman -S bzip2 cairo fftw fontconfig freetype2 gcc-libs gdal geos glibc glu libpng libtiff libx11 libgl netcdf pdal proj python-gdal python-numpy python-pillow python-wxpython readline zlib zstd<br />
<br />
Download and extract sources : https://grass.osgeo.org/download/software/sources/<br />
<br />
We can now start building GRASS 7<br />
<br />
export PATH=~/usr/bin:$PATH && \<br />
./configure \<br />
--enable-debug \<br />
--with-readline \<br />
--with-freetype=yes \<br />
--with-freetype-includes="/usr/include/freetype2/" \<br />
--with-geos \<br />
--with-odbc \<br />
--with-pthread \<br />
--with-fftw-includes="/usr/include/" \<br />
--with-fftw-libs=/usr/lib/ \<br />
--with-wxwidgets \<br />
--with-postgres \<br />
--with-pdal \<br />
--with-netcdf \<br />
--with-bzlib \<br />
--with-zstd<br />
<br />
Now let's compile and install it<br />
<br />
make<br />
make install<br />
<br />
<br />
It's done, you can enjoy GRASS 7 in Arch, just type "grass78" (Please adjust version after grass) in the terminal to launch it.<br />
<br />
===== Generic procedure for Debian-based distributions (Ubuntu, ...) =====<br />
<br />
WORK IN PROGRESS<br />
<br />
1. Install official GRASS package<br />
<br />
sudo apt install grass grass-dev<br />
<br />
2. Enable source code download<br />
<br />
# do backup first<br />
sudo cp /etc/apt/sources.list /etc/apt/sources.list.orig<br />
sudo sed -i '/^#\sdeb-src /s/^# *//' /etc/apt/sources.list<br />
<br />
3. Install GRASS dependencies<br />
<br />
sudo apt build-dep grass<br />
<br />
4. Download GRASS source code<br />
<br />
git clone https://github.com/osgeo/grass<br />
<br />
5. Compile GRASS from source code<br />
<br />
cd grass<br />
<br />
Configure:<br />
<br />
grass --config build | sh<br />
<br />
Optionally install missing dependecies (can happen when official GRASS package is not compatible with GRASS master), eg.<br />
<br />
sudo apt install libzstd-dev<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
6. Run locally or install<br />
<br />
./bin.x86_64-pc-linux-gnu/grass79 --version<br />
<br />
or <br />
<br />
sudo make install<br />
grass79 --version<br />
<br />
===== Debian =====<br />
<br />
* Official [http://wiki.debian.org/DebianGis DebianGIS] packaging control files, available on git server:<br />
git://git.debian.org/git/pkg-grass/grass.git<br />
<br />
http://anonscm.debian.org/cgit/pkg-grass/grass.git/<br />
<br />
<!-- commented old stuff (G6)<br />
====== GRASS 6.1 on Debian Sarge ======<br />
<br />
* [http://hamish.bowman.googlepages.com/debiangisfiles#compile Compiling GRASS 6.1-CVS on Debian/OldStable (aka 3.1, Sarge)]<br />
<br />
====== GRASS 6.4 on Debian Lenny ======<br />
<br />
Install needed packages:<br />
apt-get install flex bison libreadline-dev libncurses5-dev lesstif2-dev debhelper dpatch libtiff4-dev \<br />
tcl-dev tk-dev libfftw3-dev libxmu-dev libfreetype6-dev autoconf2.13 autotools-dev doxygen \<br />
libmysqlclient15-dev graphviz libsqlite3-dev python-wxgtk2.8 libcairo2-dev libwxgtk2.8-dev \<br />
python-dev libgdal1-dev libgdal1-1.5.0 libproj-dev libproj0 proj-bin proj-data mysql<br />
<br />
# Important: avoid using CFLAGS="... -Werror-implicit-function-declaration" (also on later Debian versions), see {{trac|1684}}<br />
<br />
Configure:<br />
./configure \<br />
--with-cxx \<br />
--with-sqlite \<br />
--with-postgres --with-postgres-includes=/usr/include/postgresql \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql \<br />
--with-odbc \<br />
--with-cairo \<br />
--with-proj-share=/usr/share/proj \<br />
--with-tcltk-includes=/usr/include/tcl8.4/ \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-motif --with-fftw --with-nls --with-python \<br />
--with-x --x-libraries=/usr/lib/x86_64-linux-gnu<br />
<br />
Compile:<br />
make<br />
<br />
Install:<br />
sudo make install<br />
<br />
====== GRASS 6.4 on Debian Jessie ======<br />
<br />
Install needed packages:<br />
apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev tcl-dev tk-dev \<br />
libfreetype6-dev libgdal1h libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \<br />
libncurses5-dev libreadline-dev libsqlite3-dev libtiff5-dev \<br />
libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
libproj-dev proj-bin proj-data python-numpy python-wxgtk3.0 subversion wx-common zlib1g-dev \<br />
netcdf-bin libnetcdf-dev libatlas-dev libgegl-dev doxygen postgresql mysql-server \<br />
libgeotiff-dev libblas-dev libgeotiff-epsg libxmu-dev libxt-dev libx11-dev<br />
<br />
# Important: avoid using CFLAGS="... -Werror-implicit-function-declaration" (also on later Debian versions), see {{trac|1684}}<br />
<br />
Configure:<br />
./configure \<br />
--with-cxx \<br />
--with-sqlite \<br />
--with-postgres \<br />
--with-odbc \<br />
--with-cairo \<br />
--with-geos \<br />
--with-proj-share=/usr/share/proj \<br />
--with-tcltk-includes=/usr/include/tcl8.6/ \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-motif \<br />
--with-fftw \<br />
--with-nls \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-python \<br />
--with-x --x-libraries=/usr/lib/x86_64-linux-gnu<br />
<br />
Compile:<br />
make<br />
<br />
Install:<br />
sudo make install<br />
<br />
====== GRASS 7 on Debian Squeeze ======<br />
<br />
Install needed packages:<br />
apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev python-dev \<br />
g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev \<br />
libgdal1 libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \<br />
libncurses5-dev libproj-dev libreadline-dev libsqlite3-dev libtiff4-dev \<br />
libwxgtk2.8-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python-numpy python-wxgtk2.8 subversion wx-common zlib1g-dev<br />
<br />
Download source code:<br />
<br />
svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk<br />
<br />
Configure:<br />
<br />
cd grass_trunk/<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure --prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--without-tcltk \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite \<br />
--with-cairo --with-python=/usr/bin/python2.6-config --with-wxwidgets \<br />
--with-geos --with-pthread<br />
<br />
Compile:<br />
make<br />
<br />
Install:<br />
sudo make install # installs as /usr/local/bin/grass72<br />
<br />
====== GRASS 7 on Debian Wheezy ======<br />
<br />
Install needed packages:<br />
<br />
# note: cmake and libboost-all-dev only needed for optional libLAS<br />
sudo apt-get install cmake libboost-all-dev<br />
<br />
sudo apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev \<br />
libgdal1 libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev libncurses5-dev libproj-dev \<br />
libreadline-dev libtiff4-dev libwxgtk2.8-dev libxmu-dev libxmu-headers \<br />
libxt-dev mesa-common-dev proj-bin proj-data python-numpy python-wxgtk2.8 subversion wx-common \<br />
zlib1g-dev netcdf-bin libatlas-dev libgegl-dev opencl-headers ocl-icd-libopencl1 \<br />
libsqlite3-dev postgresql python-sphinx python-gdal<br />
<br />
Download and Install libLAS<br />
wget http://download.osgeo.org/liblas/libLAS-1.7.0.tar.gz<br />
tar -zxvf libLAS-1.7.0.tar.gz<br />
cd libLAS-1.7.0/<br />
mkdir makefiles<br />
cd makefiles<br />
cmake -G "Unix Makefiles" ../<br />
make<br />
sudo make install<br />
sudo ldconfig<br />
cd ../..<br />
<br />
Download of GRASS GIS 7 source code:<br />
wget http://grass.osgeo.org/grass78/source/grass-7.8.0.tar.gz<br />
tar -zxvf grass-7.8.0.tar.gz<br />
<br />
Configure:<br />
cd grass-7.0.0<br />
CFLAGS="-g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" CXXFLAGS="-g -Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal \<br />
--with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos --with-blas \<br />
--with-lapack-includes=/usr/lib/lapack --with-liblas=yes \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=yes --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql<br />
<br />
# --with-mysql=yes --with-mysql-includes=/usr/include/mysql \<br />
# --with-mysql-libs=/usr/lib/mysql \<br />
<br />
GRASS GIS 7 is now configured (example):<br />
<br />
Source directory: /home/user/grass-7.0.0<br />
Build directory: /home/user/grass-7.0.0<br />
Installation directory: ${prefix}/grass-7.0.0<br />
Startup script in directory:${exec_prefix}/bin<br />
C compiler: gcc -g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused <br />
C++ compiler: c++ -g -Wall<br />
Building shared libraries: yes<br />
OpenGL platform: X11<br />
MacOSX application: no<br />
MacOSX architectures: <br />
MacOSX SDK: <br />
BLAS support: yes<br />
C++ support: yes<br />
Cairo support: yes<br />
DWG support: no<br />
FFTW support: yes<br />
FreeType support: yes<br />
GDAL support: yes<br />
GEOS support: yes<br />
LAPACK support: no<br />
Large File support (LFS): yes<br />
libLAS support: yes<br />
MySQL support: no<br />
NetCDF support: yes<br />
NLS support: yes<br />
ODBC support: yes<br />
OGR support: yes<br />
OpenCL support: no<br />
OpenGL support: yes<br />
OpenMP support: yes<br />
PNG support: yes<br />
POSIX thread support: yes<br />
PostgreSQL support: yes<br />
Readline support: yes<br />
Regex support: yes<br />
SQLite support: yes<br />
TIFF support: yes<br />
wxWidgets support: yes<br />
X11 support: no<br />
<br />
Compile:<br />
make -j2<br />
<br />
Install:<br />
sudo make install # installs as /usr/local/bin/grass70<br />
<br />
Launch:<br />
grass70<br />
<br />
====== GRASS 7 on Debian Jessie ======<br />
<br />
Install needed packages:<br />
sudo apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 \<br />
autotools-dev python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev \<br />
libfreetype6-dev libgdal1h libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \<br />
libncurses5-dev libproj-dev libreadline-dev libsqlite3-dev libtiff5-dev \<br />
libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python-numpy python-wxgtk3.0 subversion wx-common zlib1g-dev \<br />
netcdf-bin libnetcdf-dev libgegl-dev doxygen python-sphinx \<br />
postgresql libgeotiff-dev libblas-dev mysql-server \<br />
libatlas-dev liblapack3gf liblapack-dev<br />
# opencl-headers ocl-icd-libopencl1 liblas-bin liblas-c-dev python-gdal<br />
<br />
Download and compile libLAS (or simply install 'liblas-c-dev ', see above):<br />
wget http://download.osgeo.org/liblas/libLAS-1.8.0.tar.bz2<br />
tar xjf libLAS-1.8.0.tar.bz2<br />
mkdir libLAS-1.8.0/makefiles<br />
cd libLAS-1.8.0/makefiles<br />
cmake -G "Unix Makefiles" ../<br />
make<br />
sudo make install<br />
<br />
Download and compile GRASS 7:<br />
# (check there for later version)<br />
wget http://grass.osgeo.org/grass74/source/grass-7.4.0.tar.gz<br />
tar xzfv grass-7.4.0.tar.gz<br />
cd grass-7.4.0<br />
CFLAGS="-g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-g -Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-blas --with-blas-includes=/usr/include/atlas/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas/ \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql \<br />
--with-mysql=yes --with-mysql-includes=/usr/include/mysql \<br />
--with-mysql-libs=/usr/lib/mysql<br />
make -j2<br />
<br />
Install:<br />
sudo make install # installs as /usr/local/bin/grass74<br />
<br />
--><br />
<br />
====== GRASS 7 on Debian Stretch ======<br />
(Updated from above with package changes required for Debian Stretch)<br />
<br />
Install needed packages for GRASS 7.2 - 7.6:<br />
apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 \<br />
libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libncurses5-dev libproj-dev libreadline-dev \<br />
libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python-numpy python-wxgtk3.0 python-wxtools wx-common zlib1g-dev netcdf-bin \<br />
libnetcdf-dev libgegl-dev doxygen python-sphinx postgresql libgeotiff-dev libblas-dev \<br />
mariadb-server libatlas-dev liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \<br />
subversion liblas-bin liblas-c-dev python-gdal libpdal-dev libpdal-plugin-python pdal<br />
<br />
Install needed packages for GRASS 7.8+ (Python 3 support!):<br />
apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 python3-dev \<br />
libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libproj-dev libreadline-dev libgeos-c1v5 \<br />
libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python3-numpy python3-six wx-common zlib1g-dev netcdf-bin \<br />
libnetcdf-dev libgegl-dev doxygen python3-sphinx postgresql libgeotiff-dev libblas-dev \<br />
libatlas-dev liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \<br />
subversion liblas-bin liblas-c-dev python3-gdal libpdal-dev libpdal-plugin-python pdal<br />
<br />
# ? python3-wxgtk4.0 libmariadb<br />
<br />
Download and unpack source code or fetch from GitHub: https://github.com/OSGeo/grass<br />
<br />
Configuration:<br />
<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-blas --with-blas-includes=/usr/include/atlas/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas/ \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql \<br />
--with-mysql=yes --with-mysql-includes=/usr/include/mysql<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
Install:<br />
<br />
make install<br />
<br />
====== GRASS 7 on Debian Buster ======<br />
<br />
-- To be updated --<br />
<br />
Install needed packages for GRASS 7.8+ (Python 3 support!):<br />
apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \<br />
g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 python3-dev \<br />
libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libproj-dev libreadline-dev libgeos-c1v5 \<br />
libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \<br />
proj-bin proj-data python3-numpy python3-six wx-common zlib1g-dev netcdf-bin \<br />
libnetcdf-dev libgegl-dev doxygen python3-sphinx postgresql libgeotiff-dev libblas-dev \<br />
liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \<br />
subversion liblas-bin liblas-c-dev python3-gdal libpdal-dev libpdal-plugin-python pdal \<br />
python3-wxgtk4.0 default-libmysqlclient-dev<br />
<br />
Download and unpack GRASS GIS 7.8 source code or fetch from GitHub: https://github.com/OSGeo/grass<br />
<br />
Configuration:<br />
<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-blas --with-blas-includes=/usr/include/atlas/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas/ \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no --with-postgres=yes \<br />
--with-postgres-includes=/usr/include/postgresql \<br />
--with-postgres-libs=/usr/lib/postgresql \<br />
--with-mysql=yes --with-mysql-includes=/usr/include/mysql<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
Install:<br />
<br />
make install<br />
<br />
====== GRASS 8 on Debian 11 (bullseye) ======<br />
<br />
Install needed packages for GRASS 8.2:<br />
apt-get update && \<br />
apt-get install bison debhelper-compat dh-python doxygen fakeroot flex graphviz \<br />
libblas-dev libbz2-dev libcairo2-dev libfftw3-dev libfreetype6-dev \<br />
libgdal-dev libgeos-dev libgl1-mesa-dev libglu1-mesa-dev libjpeg-dev liblapack-dev libmotif-dev \<br />
default-libmysqlclient-dev libncurses5-dev libnetcdf-dev libpng-dev libpq-dev \<br />
libproj-dev libreadline-dev libsqlite3-dev libtiff-dev libxmu-dev libzstd-dev \<br />
netcdf-bin pkg-config proj-bin python3 python3-dev python3-numpy python3-pil python3-ply \<br />
python3-six python3-wxgtk4.0 wget unixodbc-dev zlib1g-dev<br />
<br />
<br />
Download and unpack GRASS GIS 8.2 source code (or fetch from GitHub: https://github.com/OSGeo/grass):<br />
<br />
wget https://grass.osgeo.org/grass82/source/grass-8.2-latest.tar.gz<br />
tar xvfz grass-8.2-latest.tar.gz<br />
cd grass-8.2.*<br />
<br />
Configuration:<br />
<br />
CFLAGS="-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused" \<br />
CXXFLAGS="-Wall" \<br />
./configure \<br />
--prefix=/usr/local \<br />
--with-gdal --with-proj --with-proj-share=/usr/share \<br />
--with-glw --with-nls --with-readline \<br />
--with-cxx --enable-largefile \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-sqlite --with-cairo --with-python=/usr/bin/python-config \<br />
--with-wxwidgets --with-geos \<br />
--with-netcdf=/usr/bin/nc-config --with-odbc=yes \<br />
--with-openmp=yes --with-pthread=no<br />
<br />
Compile:<br />
<br />
make -j2<br />
<br />
Install:<br />
<br />
make install<br />
<br />
===== Ubuntu =====<br />
<br />
There is a dedicated page on how to [[Compile_and_Install_Ubuntu | Compile the GRASS GIS source code & install it in Ubuntu]].<br />
<br />
===== Linux Mint =====<br />
<br />
The [[Compile_and_Install_Ubuntu | detailed compilation guide for Ubuntu]] may just work. However, here is a short guide for Mint:<br />
<br />
<source lang="bash"><br />
# Linux Mint 21+<br />
<br />
# be sure to have an updated system<br />
sudo apt-get update && sudo apt-get upgrade -y<br />
<br />
# installation of required libraries and compile tools<br />
# recommended to give Python3 precedence over Python2 (which is end-of-life since 2019)<br />
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1<br />
<br />
# install compiler tools and further dependencies (tested with Linux Mint 21)<br />
# this is a single command, please copy-paste it entirely into the terminal:<br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ cmake ccache \<br />
libproj-dev proj-data proj-bin \<br />
libgeos-dev \<br />
libgdal-dev python3-gdal gdal-bin \<br />
python3 python3-dev \<br />
python3-opengl \<br />
python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-gtk3-dev libwxbase3.0-dev \<br />
libncurses5-dev zlib1g-dev gettext \<br />
libbz2-dev libzstd-dev libfreetype6-dev \<br />
libtiff5-dev libpnglite-dev libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev libpq-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev \<br />
subversion \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
'''GUI''' - update wxpython:<br />
<br />
<source lang="bash"><br />
pip3 install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 wxPython<br />
</source><br />
<br />
Next steps:<br />
* create a subdirectory in your HOME tree for storing the GRASS GIS source code (and later compilation)<br />
* get source code, one of the two options:<br />
** a) download [https://grass.osgeo.org/grass-stable/source/snapshot/ GRASS GIS source code weekly snapshot] (e.g. take the "8.x.git snapshot"), or<br />
*** unpack source code<br />
** b) current source code from GitHub:<br />
*** <code>git clone https://github.com/OSGeo/grass.git</code><br />
* change into the source code directory<br />
<br />
<source lang="bash"><br />
# in the source code directory, "configure" the source code to prepare for compilation:<br />
./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-geos \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-zstd \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-fftw \<br />
--with-opengl-libs=/usr/include/GL \<br />
--without-postgres \<br />
--without-pdal \<br />
--without-netcdf \<br />
--without-mysql \<br />
--without-odbc \<br />
--without-openmp<br />
<br />
# compile GRASS GIS<br />
make -j2<br />
<br />
# install compiled GRASS GIS on system<br />
sudo make install<br />
<br />
# use GRASS GIS! Start on command line<br />
grass<br />
</source><br />
<br />
===== Mandriva =====<br />
<br />
Installation of dependencies (urpmi will ask you a few more):<br />
<br />
'''Mandriva 2009:''' (take out the '64' everywhere if you are on 32bit)<br />
# as root<br />
urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \<br />
mesagl1-devel mesaglu1-devel lib64xmu6-devel gcc-c++ gettext \<br />
lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \<br />
lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion<br />
exit<br />
<br />
'''Mandriva 2010:''' (take out the '64' everywhere if you are on 32bit) - see also [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SPECS/ SPEC] file<br />
# as root<br />
# installation of PROJ and GDAL<br />
urpmi proj proj-devel gdal gdal-devel gcc-gfortran lib64openssl1.0.0 \<br />
lib64openssl1.0.0-devel postgresql8.4-devel lib64pq8.4<br />
<br />
# installation of compilation environment<br />
urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \<br />
lib64mesagl1-devel lib64mesaglu1-devel lib64xmu6-devel gcc-c++ gettext \<br />
lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \<br />
lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion<br />
exit<br />
<br />
Then, to configure GRASS, run (64 bit stuff optional of course):<br />
# as user<br />
./configure \<br />
--enable-64bit --with-libs=/usr/lib64 \<br />
--with-cxx \<br />
--with-gdal=/usr/local/bin/gdal-config \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-python \<br />
--with-wxwidgets=/usr/lib/wxPython/bin/wx-config \<br />
--with-fftw \<br />
--with-ffmpeg --with-ffmpeg-includes="/usr/include/libav* /usr/include/libpostproc /usr/include/libswscale" \<br />
--with-motif \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64 \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--enable-largefile<br />
<br />
# compilation (use -j2 ior -j4 parameter on multi-core CPUs to accelerate): <br />
make<br />
<br />
Installation:<br />
su<br />
# this will install into /usr/local/<br />
make install<br />
exit<br />
<br />
===== Enterprise Linux =====<br />
<br />
Enterprise Linux (EL) and derivatives (that is, Red Hat Enterprise Linux, CentOS and Scientific Linux) is a popular and robust platform for servers and computing-heavy workstations, and is therefore a good fit for GIS specific requirements.<br />
<br />
See: http://wiki.osgeo.org/wiki/Enterprise_Linux_GIS<br />
<br />
===== Scientific Linux =====<br />
<br />
See Centos<br />
<br />
===== CentOS =====<br />
<br />
You first need to add the EPEL repository for PROJ.4 and GDAL, see [https://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F here]<br />
<br />
<strike><br />
Preparation '''Centos 5''' (old):<br />
yum install epel-release<br />
<br />
# Note: CentOS 5 comes with Python 2.4 which lacks python-config, hence two extra tweaks are needed.<br />
yum install flex bison zlib-devel tcl-devel tk-devel gcc-c++ gettext \<br />
libtiff-devel libpng-devel sqlite-devel \<br />
mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel \<br />
mesa-libOSMesa-devel libXmu-devel python-devel gtk2-devel\<br />
ncurses-devel postgresql-devel make<br />
</strike><br />
<br />
Preparation '''Centos 6''' | '''Scientific Linux 6''':<br />
yum install epel-release<br />
<br />
yum install flex bison make zlib-devel gcc-c++ gettext \<br />
sqlite-devel mesa-libGL-devel mesa-libGLU-devel \<br />
libXmu-devel libX11-devel fftw-devel libtiff-devel \<br />
lesstif-devel python-devel numpy wxPython wxGTK-devel \<br />
proj proj-devel proj-epsg proj-nad libxml2 gdal gdal-devel geos geos-devel \<br />
python-dateutil python-imaging python-matplotlib python-argparse<br />
# only GRASS GIS 6: install also tcl-devel tk-devel<br />
<br />
Preparation '''Centos 7''' | '''Scientific Linux 7''':<br />
yum install epel-release<br />
<br />
yum install flex bison make zlib-devel gcc-c++ gettext \<br />
sqlite-devel mesa-libGL-devel mesa-libGLU-devel \<br />
libXmu-devel libX11-devel fftw-devel libtiff-devel \<br />
lesstif-devel python-devel numpy wxPython wxGTK-devel \<br />
proj proj-devel proj-epsg proj-nad libxml2 gdal gdal-devel geos geos-devel \<br />
netcdf netcdf-devel blas-devel lapack-devel atlas-devel \<br />
python-dateutil python-imaging python-matplotlib python-sphinx \<br />
doxygen subversion<br />
<br />
Preparation '''Centos 8''' | '''Scientific Linux 8''':<br />
dnf install epel-release<br />
<br />
dnf install flex bison make zlib-devel gcc-c++ gettext \<br />
fftw-devel libtiff-devel sqlite-devel \<br />
proj proj-devel proj-datumgrid libxml2 \<br />
geos geos-devel git \<br />
netcdf netcdf-devel atlas-devel \<br />
blas-devel lapack-devel libpq-devel \<br />
python3-devel python3-numpy \<br />
python3-dateutil python3-imaging python3-matplotlib \<br />
gdal gdal-libs gdal-python-tools python3-gdal gdal-devel \<br />
wxGTK3-devel mesa-libGL-devel mesa-libGLU-devel \<br />
libXmu-devel libX11-devel<br />
<br />
'''GRASS GIS 7 compilation and installation'''<br />
<br />
[https://grass.osgeo.org/grass-stable/source/snapshot/ Download source code] (e.g., --> "Download latest 7.8 code)" and configure GRASS 7 (suggestion: save this as script):<br />
<br />
./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-sqlite \<br />
--with-python \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--with-wxwidgets=/usr/bin/wx-config \<br />
--with-openmp \<br />
--with-blas --with-blas-includes=/usr/include/atlas-x86_64-base/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas-x86_64-base/ \<br />
--with-fftw \<br />
--with-geos \<br />
--with-netcdf \<br />
--without-ffmpeg \<br />
--without-mysql \<br />
--without-postgres \<br />
--without-odbc \<br />
--without-fftw<br />
<br />
Compile:<br />
make<br />
or on a multicore system (number depends of available cores):<br />
make -j4<br />
<br />
For a system wide installation, run as root user:<br />
make install<br />
OR simply run it directly from the source code directory (substitute ARCH with i686 or x86_64):<br />
<br />
bin.$ARCH/grass78 -gui<br />
<br />
In this case, for convenience, add it to the search path:<br />
mkdir $HOME/bin<br />
cd $HOME/bin<br />
# example:<br />
ln -s $HOME/software/grass78_release/bin.x86_64-pc-linux-gnu/grass78 .<br />
<br />
Now use it subsequently with<br />
grass78 -gui<br />
<br />
<br />
'''Installation grass78 on a HPC system with '''Centos 7''' and no root privileges:'''<br />
This assumes that python3, fftw, proj, gdal and geos are available on the HPC system, either as modules or as installed software.<br />
<br />
Download and prepare some dependencies (freetypes and zstd)<br />
mkdir -p $HOME/grass/freetypes<br />
cd $HOME/grass/freetypes<br />
wget path/to/freetype-2.9.1.tar.gz<br />
tar -xf freetype-2.9.1.tar.gz<br />
<br />
mkdir $HOME/grass/zstd<br />
cd mkdir $HOME/grass/zstd<br />
wget path/to/v1.4.4/zstd-1.4.4.tar.gz<br />
tar -xf zstd-1.4.4.tar.gz<br />
make install PREFIX=./<br />
<br />
Add the ZSTD path to your LD_LIBRARY_PATH<br />
<br />
tee -a $HOME/.bashrc > /dev/null << EOT<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/grass/zstd/zstd-1.4.4/lib<br />
EOT<br />
<br />
The configure command could look like this<br />
./configure \<br />
-prefix=$HOME/grass \<br />
--enable-64bit --with-fftw-includes=/path/to/fftw/include/ \<br />
--with-fftw-libs=/path/to/fftw/lib/ \<br />
--with-freetype-includes=$HOME/grass/freetypes/freetype-2.9.1/include/ \<br />
--with-netcdf --with-geos --with-blas --with-lapack --with-postgres \<br />
--with-zstd-includes=$HOME/grass/zstd/zstd-1.4.4/lib/ \<br />
--with-zstd-libs=$HOME/grass/zstd/zstd-1.4.4/lib/ \<br />
--with-gdal=/path/to/gdal-config # This could be the path to a gdal version compiled from source<br />
<br />
Finally usual:<br />
make; make install<br />
<br />
===== Gentoo =====<br />
<br />
./configure \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/"<br />
<br />
See also http://packages.gentoo.org/package/sci-geosciences/grass<br />
<br />
===== Funtoo =====<br />
<br />
{{MovedToTrac|FuntooLinux}}<br />
<br />
===== Fedora =====<br />
<br />
<!-- commented out, too old<br />
<br />
====== GRASS GIS 6 on Fedora ======<br />
<br />
'''Preparation''' for the compilation of GRASS GIS 6 source code (F16-F21):<br />
<br />
yum install proj-devel gdal-devel sqlite-devel ffmpeg-devel mesa-libGL-devel \<br />
mesa-libGLU-devel libXmu-devel libX11-devel tcl-devel tk-devel geos \<br />
fftw-devel libtiff-devel lesstif-devel python-devel numpy wxPython wxGTK-devel \<br />
gcc gcc-c++ bison flex ncurses-devel proj-epsg proj-nad xml2 subversion<br />
<br />
''Note 1: that currently gdal-devel has (too) many dependencies and may lead to a massive download of extra packages (200 on a fresh Fedora 16 install). Hopefully solved in later Fedora versions.''<br />
<br />
''Note 2: the optional ffmpeg-devel comes from the rpmfusion-free repository ([http://rpmfusion.org/Configuration/ configuration]).''<br />
<br />
'''Download''' the source code:<br />
* GRASS GIS 6: [http://grass.osgeo.org/download/software/sources/ release package] - [http://grass.osgeo.org/grass64/source/snapshot/ weekly snapshot] - [http://trac.osgeo.org/grass/wiki/DownloadSource#GRASS6.4 SVN repository]<br />
<br />
'''Configure''': This is an ''example'' how to configure the source code on a Fedora system:<br />
<br />
./configure \<br />
--with-cxx \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-geos \<br />
--with-wxwidgets=/usr/bin/wx-config \<br />
--with-python=/usr/bin/python-config \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--enable-largefile \<br />
--without-odbc \<br />
--with-fftw<br />
<br />
Extra: If you also want '''FFMPEG''' support - it requires 'yum install fftw-devel'. Then add to the configuration lines above:<br />
<br />
--with-ffmpeg --with-ffmpeg-includes="/usr/include/ffmpeg /usr/include/ffmpeg/libav* /usr/include/ffmpeg/libpostproc /usr/include/ffmpeg/libswscale" \<br />
<br />
<br />
Finally '''compile''' the configured source code:<br />
make<br />
or on multicore (number depends of available cores):<br />
make -j4<br />
and<br />
make install # requires root permissions unless you become owner of /usr/local/<br />
<br />
Then use GRASS GIS 6 and enjoy!<br />
--><br />
<br />
====== GRASS GIS 8 on Fedora ======<br />
<br />
'''Preparation''' for the compilation of GRASS GIS 8+ source code (F36+):<br />
<br />
dnf install gcc gcc-c++ bison flex ncurses-devel gettext proj-devel \<br />
gdal gdal-devel sqlite-devel xml2 mesa-libGL-devel cairo-devel \<br />
fftw-devel mesa-libGLU-devel libXmu-devel libX11-devel geos geos-devel \<br />
libtiff-devel python3-devel numpy wxGTK3-devel subversion \<br />
python3-dateutil python3-imaging python3-matplotlib-wx doxygen python3-sphinx \<br />
libzstd-devel libzstd python3-six python3-numpy python3-wxpython4 \<br />
proj-data PDAL-devel PDAL-libs<br />
<br />
# optionally also: netcdf-devel postgresql-devel <br />
# atlas-devel lapack-devel lapack-devel <br />
# laszip laszip-devel<br />
# proj-data-at proj-data-au proj-data-be ...<br />
<br />
''Note 1: the optional ffmpeg-devel comes from the rpmfusion-free repository ([http://rpmfusion.org/Configuration/ configuration]).''<br />
<br />
<br />
'''Download''' and unpack the source code:<br />
* GRASS GIS 8: [https://grass.osgeo.org/grass-stable/source/snapshot/ weekly snapshot] - [https://github.com/OSGeo/grass/releases GitHub repository]<br />
<br />
<br />
'''Configure''': This is an example how to configure the source code on a Fedora system:<br />
<br />
./configure \<br />
--with-cxx \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-geos \<br />
--with-pdal \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-wxwidgets=/usr/bin/wx-config \<br />
--with-fftw \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype --with-freetype-includes=/usr/include/freetype2 \<br />
--enable-largefile \<br />
--without-odbc<br />
<br />
''Extra 1:'' If you also want '''FFMPEG support''' - it requires 'dnf install fftw-devel' from the rpmfusion-free repository. Then add to the configuration lines above:<br />
<br />
--with-ffmpeg --with-ffmpeg-includes="/usr/include/ffmpeg /usr/include/ffmpeg/libav* /usr/include/ffmpeg/libpostproc /usr/include/ffmpeg/libswscale" \<br />
<br />
''Extra 2:'' For '''LAPACK/BLAS support''' (addons i.spec.unmix, v.kriging etc), install "dnf install lapack lapack-devel blas blas-devel atlas atlas-devel". Then add to the configuration lines above:<br />
--with-blas --with-blas-includes=/usr/include/atlas-x86_64-base/ \<br />
--with-lapack --with-lapack-includes=/usr/include/atlas-x86_64-base/ \<br />
<br />
''Extra 3:'' For '''ZSTD support''' (Zstandard compression algorithm), first install "dnf install libzstd libzstd-devel zstd". After installing the zstd related packages, add to the configuration lines above:<br />
--with-zstd \<br />
<br />
Finally '''compile''' the configured source code:<br />
make<br />
or on multicore (number depends of available cores):<br />
make -j4<br />
and<br />
make install # requires root permissions unless you become owner of /usr/local/<br />
<br />
Then use GRASS GIS 8 and enjoy!<br />
<br />
===== openSUSE =====<br />
<br />
To build GRASS on openSUSE:<br />
<br />
''Application:Geo'' repo to be added (see [https://software.opensuse.org//download.html?project=Application%3AGeo&package=gdal Install package Application:Geo]<br />
<br />
<source lang="bash"><br />
# example for Leap 42 version:<br />
sudo zypper addrepo http://download.opensuse.org/repositories/Application:Geo/openSUSE_Leap_42.3/Application:Geo.repo<br />
sudo zypper refresh<br />
</source><br />
<br />
RPM packages to be installed:<br />
<source lang="bash"><br />
sudo zypper install bison flex freetype2-devel fftw3-devel gcc-c++ \<br />
libgdal-devel libgeos-devel libjpeg-devel libpng-devel libtiff-devel \<br />
man proj libproj-devel readline-devel netcdf-devel ncurses-devel \<br />
mysql-devel postgresql-devel sqlite-devel unixODBC-devel \<br />
tcl-devel tk-devel xorg-x11-Mesa-devel libXmu-devel \<br />
python-numpy python-dateutil python-devel python-opengl \<br />
python-wxWidgets python-xml python-dateutil wxWidgets-devel \<br />
zlib-devel doxygen python-sphinx<br />
</source><br />
<br />
Source code configuration:<br />
<source lang="bash"><br />
./configure \<br />
--enable-largefile \<br />
--with-proj-share=/usr/share/proj \<br />
--with-cxx \<br />
--with-lapack=yes \<br />
--with-x \<br />
--with-motif \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-postgres --with-postgres-includes=/usr/include/pgsql \<br />
--with-mysql --with-mysql-includes=/usr/include/mysql \<br />
--with-fftw \<br />
--with-readline \<br />
--with-netcdf \<br />
--with-curses \<br />
--with-geos \<br />
--with-nls \<br />
--with-sqlite \<br />
--with-freetype \<br />
--with-freetype-includes=/usr/include/freetype2 \<br />
--with-wxwidgets \<br />
--with-odbc \<br />
--with-python<br />
</source><br />
<br />
Then compile with "make [-j2]".<br />
<br />
===== RPM SPEC files =====<br />
* [https://build.opensuse.org/package/show?package=grass&project=Application%3AGeo OpenSuSe]<br />
* [http://pkgs.fedoraproject.org/cgit/rpms/grass.git/tree/grass.spec Fedora]<br />
* ...<br />
<br />
===== Zaurus =====<br />
<br />
... see [http://wiki.debian.org/?GrassGISonZaurus here] for instructions<br />
<br />
==== macOS ====<br />
<br />
Compiling GRASS GIS for macOS is not fundamentally different from for other *nix systems. It is on the contrary quite similar, but what differ is the lack of a default package management system for software GRASS GIS depends on. This leaves the mac user to either: (1) compile the dependencies one-by-one; (2) using the [http://www.kyngchaos.com/software/frameworks/ frameworks] generously shared by William Kyngesburye; (3) compiling with one of the third-party package management systems avaliable; or (4) a combination thereof.<br />
<br />
If you are interested in installing a precompiled version, please check out the [https://grass.osgeo.org/download/software/mac-osx/ official download site].<br />
<br />
To date, maybe the easiest way to compile for Mac is by using [https://github.com/nilason/grass-conda GRASS GIS app build script] which is based on the instructions below for building using Anaconda. It will install dependencies, package and install an app bundle with just a command in Terminal.<br />
<br />
===== Compilation and installation =====<br />
<br />
For more up-to-date instructions please read:<br />
<br />
* [[Compiling on macOS using Anaconda]]<br />
* [[Compiling on macOS using Homebrew]]<br />
* [[Compiling on macOS using MacPorts]]<br />
<br />
===== Legacy instructions =====<br />
<br />
The following compilation and installation instructions are rather outdated as a whole. They do, however, contain parts and snippets that still may be very instructive and useful.<br />
<br />
* [[Compiling on MacOSX]]<br />
* [[Compiling on MacOSX using Fink]]<br />
* [https://web.archive.org/web/20180718005252/http://www.kyngchaos.com/software/frameworks#build_scripts build scripts for dependencies]<br />
<br />
Troubleshooting:<br />
* solving errors at starting GRASS GIS: [[MacOSX GRASS errors]]<br />
<br />
==== FreeBSD / NetBSD ====<br />
<br />
The recommended compiler tools are GCC, GNU make, GNU coreutils (for install), and flex. All are available through the respective package managing tools (pkg_add for FreeBSD and pkgin install for NetBSD) and for recent *BSD versions most likely installed by default.<br />
<br />
GRASS 6.x and GRASS 7 should compile on FreeBSD 8.0 or later and NetBSD 5.0 or later (maybe also on updated NetBSD 4.x).<br />
<br />
It is highly recommended to install GDAL/OGR and PROJ4 first. These libraries and tools are available as [http://www.freebsd.org/ports/ ports for FreeBSD] and [http://www.pkgsrc.org/ packages for NetBSD].<br />
<br />
Optional functionality is listed with ''./configure --help'', and related libraries and tools might need to be installed first.<br />
<br />
You then may need to edit include/Make/Platform.make and set<br />
ICONVLIB = -liconv<br />
<br />
==== Solaris ====<br />
<br />
* ''2008 Oct 15'': see [http://lists.osgeo.org/pipermail/grass-user/2008-October/047093.html this post on the grass mailing list]<br />
<br />
===== 11 SPARC/i86pc =====<br />
<br />
The recommended compiler tools are GCC, GNU make, GNU coreutils (for install), and flex. All are available through the Solaris package manager.<br />
<br />
Most dependencies are available through the Solaris package manager. GDAL and proj4 can either be compiled from source or installed e.g. from [http://www.opencsw.org/ OpenCSW]. If packages are installed from OpenCSW, the linker flags need to be set with<br />
<br />
LDFLAGS="-Wl,-R/opt/csw/lib -L/opt/csw/lib -Wl,-R/opt/csw/gxx/lib -L/opt/csw/gxx/lib"<br />
<br />
See also the [http://www.opencsw.org/use-it/ OpenCSW documentation].<br />
<br />
===== 10 SPARC/i86pc =====<br />
<br />
* get gcc compiler and tools. There are several sources: Solaris Companion CD (SFW pkg, installs in /opt/sfw/), Blastwave ([http://www.blastwave.org], CSW pkg, installs in /opt/csw/) or Sunfreeware ([http://www.sunfreeware.com], SMC pkg, installs in /usr/local/). <br />
Needed Packages from Sunfreeware: SMCbinut, SMCbison, SMCcoreu, SMCfindu, SMCflex, SMCgawk, SMCgcc, SMCgrep, SMCgzip, SMCless, SMClibt, SMClicon, SMCmake, SMCncurs, SMCproj, SMCsed, SMCtar, SMCtcl, SMCtiff, SMCtk, SMCunzip, SMCzlib. <br />
<br />
* compile and install fftw-library ([http://www.fftw.org]). You need to re-compile the library with: <br />
<br />
./configure --with-pic --enable-shared; make ; make install. <br />
<br />
The pre-built packages don't work. <br />
<br />
* compile and install gdal library (see documentation of gdal, [http://www.gdal.org]).<br />
<br />
* compile and install any additional libraries (e. g. GEOS, [http://geos.refractions.net]). <br />
<br />
* set compiler flags and path. e. g.: <br />
<br />
# on ultra-sparc machine:<br />
CFLAGS="-O3 -mcpu=v9"<br />
CXXFLAGS="-O3 -mcpu=v9"<br />
PATH="/usr/local/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/bin:/usr/sbin"<br />
export CFLAGS CXXFLAGS PATH<br />
<br />
Path has to be changed for the packages (Sunfreeware: /usr/local/bin, Solaris Companion: /opt/sfw/bin, Blastwave: /opt/csw/bin). <br />
<br />
* Next configure, e. g.: <br />
<br />
./configure --with-postgres-includes=/usr/include/pgsql/ \<br />
--with-postgres-libs=/usr/lib --with-postgres=yes \<br />
--with-includes=/usr/local/include/ncurses<br />
<br />
If you use n(ew)curses, you have to include the path /usr/local/include/ncurses. <br />
<br />
then:<br />
<br />
make<br />
su<br />
make install<br />
<br />
If the shared libraries are not found at runtime of the modules, use 'crle' to add the paths of the libraries for the dynamic linker, e. g. as root:<br />
<br />
crle -l /lib:/usr/lib:/usr/local/lib:/opt/sfw/lib:/usr/X11/lib<br />
<br />
Be careful not to omit a library path, the system may be unusable if you forget the /lib path.<br />
<br />
==== AIX ====<br />
<br />
A recent [ftp://ftp.gnu.org/gnu/make/ GNU make] (>= 3.81) and GNU coreutils are required. These are available with the [http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/download.html IBM AIX toolbox] or through third-party AIX software repositories, e.g. [http://www.bullfreeware.com/ bullfreeware] and [http://www.perzl.org/aix/ perzl.org]. Note that 'make' does not work, only 'gmake' works. <br />
<br />
General instructions to compile on AIX are e.g. [http://www.perzl.org/aix/index.php?n=Main.Instructions here]<br />
<br />
On AIX, compilation results by default in 32 bit applications and static libraries. The [http://www.ibm.com/developerworks/aix/library/au-gnu.html IBM documentation] explains how to build 64 bit applications and shared libraries with GCC.<br />
<br />
'''GRASS 6: Using the IBM xlc compiler:'''<br />
* ''see [http://thread.gmane.org/gmane.comp.gis.grass.user/32667 this mailing list thread]''<br />
<br />
Mike wrote in 2009:<br />
<br />
After attempting all the suggestions, I finally used<br />
--disable-shared on the configure command, and all but<br />
a handful of modules successfully compiled. I was able to<br />
individually address the ones that failed through Makefile<br />
edits and several small source code/header file edits.<br />
<br />
The environment variables and configure command that worked were:<br />
<pre><br />
# xlc compiler:<br />
export PATH=/usr/local/bin:/opt/freeware/bin:$PATH<br />
export OBJECT_MODE=64<br />
export LIBICONV=/opt/freeware<br />
export CC="xlc_r -q64"<br />
export CFLAGS="-O -qstrict"<br />
export CXX="xlC_r -q64"<br />
export CXXFLAGS="-O -qstrict"<br />
export AR="ar -X64"<br />
export F77="xlf_r -q64"<br />
export CPPFLAGS="-I/afs/isis/pkg/libpng/include -I/usr/local/include -I$LIBICONV/include -I/usr/lpp/X11/include/X11"<br />
export LDFLAGS="-L/usr/local/lib -L$LIBICONV/lib -L/usr/lib -L/usr/X11R6/lib -lc"<br />
<br />
./configure --prefix=/afs/isis/pkg/grass-6.4.0 \<br />
--enable-64bit \<br />
--disable-shared \<br />
--with-includes="/usr/include/fontconfig /usr/include/X11 /usr/include/X11/Xft /usr/include/X11/ext" \<br />
--x-includes=/usr/include/X11 \<br />
--x-libraries=/usr/X11R6/lib \<br />
--with-fftw-includes=/afs/isis/pkg/fftw-3.2.2/include \<br />
--with-fftw-libs=/afs/isis/pkg/fftw-3.2.2/lib \<br />
--with-gdal=/afs/isis/pkg/gdal/bin/gdal-config \<br />
--with-proj-includes=/afs/isis/pkg/proj/include \<br />
--with-proj-libs=/afs/isis/pkg/proj/lib \<br />
--with-proj-share=/afs/isis/pkg/proj/share/proj \<br />
--with-tcltk-includes=/usr/local/include \<br />
--with-tcltk-libs=/usr/local/lib \<br />
--with-opengl-includes=/usr/include/GL<br />
</pre><br />
<br />
'''GRASS 7: Using the IBM xlc compiler:'''<br />
<br />
Get and install (in this order):<br />
* [ftp://ftp.gnu.org/gnu/tar/ GNU tar]<br />
* [ftp://ftp.gnu.org/gnu/make/ GNU make] (>= 3.81)<br />
* [http://www.sqlite.org SQLite]<br />
* [http://trac.osgeo.org/proj/ PROJ.4] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://www.gdal.org GDAL] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://grass.osgeo.org/grass74/source/snapshot/ GRASS GIS 7]<br />
<br />
The environment variables and configure command that worked:<br />
<pre><br />
## AIX 5.x<br />
<br />
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib<br />
# make 'ar' happy<br />
export OBJECT_MODE=64<br />
<br />
PREFIX=$HOME/private/bin<br />
./configure \<br />
--prefix=$PREFIX \<br />
--disable-shared \<br />
--enable-largefile \<br />
--with-cxx \<br />
--with-proj-includes=$PREFIX/include/ \<br />
--with-proj-libs=$PREFIX/lib/ \<br />
--with-proj-share=$PREFIX/share/proj/ \<br />
--with-sqlite \<br />
--with-sqlite-includes=$PREFIX/include/ \<br />
--with-sqlite-libs=$PREFIX/lib/ \<br />
--with-tiff=no \<br />
--with-png=no \<br />
--with-fftw=no \<br />
--with-cairo=no \<br />
--with-freetype=no<br />
</pre><br />
<br />
'''GRASS 7: Using the GNU gcc compiler:'''<br />
<br />
Get and install (in this order):<br />
* if needed, [ftp://ftp.gnu.org/gnu/tar/ GNU tar]<br />
* if needed (the name is often 'gmake' and not 'make') [ftp://ftp.gnu.org/gnu/make/ GNU make] (>= 3.81)<br />
* [http://www.sqlite.org SQLite]<br />
* [http://trac.osgeo.org/proj/ PROJ.4] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://www.gdal.org GDAL] (for ./configure parameters, see [[Talk:Compile and Install|here]])<br />
* [http://grass.osgeo.org/grass74/source/snapshot/ GRASS GIS 7]<br />
<br />
The environment variables and configure command that worked for AIX 5.x:<br />
<pre><br />
## AIX 5.x<br />
<br />
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib<br />
# make 'ar' happy<br />
export OBJECT_MODE=64<br />
<br />
PREFIX=$HOME/private/bin<br />
CFLAGS='-ansi -D_ALL_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline=' ./configure \<br />
--prefix=$PREFIX \<br />
--disable-shared \<br />
--enable-largefile \<br />
--with-cxx \<br />
--with-proj-includes=$PREFIX/include/ \<br />
--with-proj-libs=$PREFIX/lib/ \<br />
--with-proj-share=$PREFIX/share/proj/ \<br />
--with-sqlite \<br />
--with-sqlite-includes=$PREFIX/include/ \<br />
--with-sqlite-libs=$PREFIX/lib/ \<br />
--with-tiff=no \<br />
--with-png=no \<br />
--with-fftw=no \<br />
--with-cairo=no \<br />
--with-freetype=no<br />
</pre><br />
<br />
The environment variables and configure command that worked for AIX 7.x:<br />
<pre><br />
## AIX 7.x<br />
export CC="gcc"<br />
export CXX="g++"<br />
PREFIX=$HOME/bin<br />
<br />
LDFLAGS="-Wl,-bsvr4,-R,/opt/freeware/lib -L/opt/freeware/lib" CPPFLAGS="-I/opt/freeware/include" ./configure \<br />
--prefix=$PREFIX \<br />
--enable-largefile \<br />
--enable-shared \<br />
--with-includes=/opt/freeware/include --with-libs=/opt/freeware/lib \<br />
--with-cxx \<br />
--with-proj-includes=$PREFIX/include/ \<br />
--with-proj-libs=$PREFIX/lib/ \<br />
--with-proj-share=$PREFIX/share/proj/ \<br />
--with-gdal=$PREFIX/bin/gdal-config \<br />
--with-sqlite \<br />
--with-sqlite-libs=$PREFIX/lib --with-sqlite-includes=$PREFIX/include \<br />
--with-png=no \<br />
--with-tiff=no \<br />
--with-fftw=no \<br />
--with-cairo=no \<br />
--with-opengl=no \<br />
--with-freetype=no<br />
</pre><br />
<br />
==== MS-Windows ====<br />
<br />
===== MS-Windows/Cygwin =====<br />
<br />
* See the [[Cygwin]] wiki pages<br />
<br />
===== MS-Windows/native =====<br />
<br />
====== Compile ======<br />
<br />
* [http://trac.osgeo.org/grass/wiki/CompileOnWindows GRASS Windows Native Binary Building Guide] (GRASS 6.4.x + 7.x)<br />
* <strike>[http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html GRASS Windows Native Binary Building Guide] (GRASS 6.3.x) </strike><br />
* See/adapt [http://blog.qgis.org/node/124 idea] for unattended install of QGIS (et al) from [http://trac.osgeo.org/osgeo4w/ OSGeo4W] from the QuantumGIS Blog.<br />
<br />
See also [[WinGRASS Current Status]] for latest updates.<br />
<br />
=== Common problems and solutions ===<br />
<br />
During compilation, error can occur if certain packages are not installed. Here a list of problems with solution:<br />
<br />
* error: X11/Xlib.h: No such file or directory<br />
** this suggests that you don't have the X headers installed<br />
** Solution: Install the libx11-dev package<br />
<br />
* error: g.list: error while loading shared libraries: libgdal1.6.0.so.1: cannot open shared object file: No such file or directory<br />
** this error appears in the shell right after the user clicks GUI's "Start GRASS" button. The GUI shows an error about geographic extent and gets closed afterwards.<br />
** It happens when you launch bin.i686 executable on 64bit system. Be careful and choose the right architecture.<br />
<br />
* error: lib/python/ctypes<br />
** This error appears during the compilation: <code>free(): invalid pointer Aborted (core dumped)</code><br />
** It happens when you have multiple <code>libproj</code> versions on your system (check it with command <code>ldd PATH_TO_GRASS_INSTALL/lib/libgrass_gproj.so | grep proj</code> - when this is not your problem, you should obtain exactly one result)<br />
** Solution: Try to reinstall <code>libproj-dev</code> and <code>proj-data</code><br />
<br />
=== Static compilation ===<br />
<br />
In order to get static rather than dynamically linked binaries, configure like this:<br />
<br />
./configure --disable-shared --enable-static<br />
<br />
This will however break the wxGUI and GRASS 7 completely because "ctypes" wants to link against shared libs, or there is something in the static libs that "ctypes" does not like.<br />
<br />
=== Optimization ===<br />
<br />
GCC and other compilers support [http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Optimize-Options.html#Optimize-Options optimization]<br />
<br />
If you would like to set compiler optimisations, for a possibly faster binary, type (don't enter a ";" anywhere):<br />
<br />
CFLAGS=-O ./configure<br />
or,<br />
setenv CFLAGS -O<br />
./configure<br />
<br />
whichever works on your shell. Use -O2 instead of -O if your compiler supports this (note: O is the letter, not zero). Using the "gcc" compiler, you can also specify processor specific flags (examples, please suggest better settings to us):<br />
<br />
CFLAGS="-mcpu=athlon -O2" # AMD Athlon processor with code optimisations<br />
CFLAGS="-march=amdfam10" # AMD Phenom II X4 64bit processor with gcc >=4.3<br />
CFLAGS="-mcpu=pentium" # Intel Pentium processor<br />
CFLAGS="-mcpu=pentium4" # Intel Pentium4 processor<br />
CFLAGS="-O2 -msse -msse2 -mfpmath=sse -minline-all-stringops" # Intel XEON 64bit processor<br />
CFLAGS="-mtune=nocona -m64 -minline-all-stringops" # Intel Pentium 64bit processor<br />
<br />
<br />
To find out optional CFLAGS for your platform, enter:<br />
gcc -dumpspecs<br />
<br />
See also: http://gcc.gnu.org/<br />
<br />
A real fast GRASS version (and small binaries) will be created with LDFLAGS set to "stripping" (but this disables debugging):<br />
<br />
CFLAGS="-O2 -mcpu=<cpu_see_above> -Wall" LDFLAGS="-s" ./configure<br />
<br />
=== Configure options and their meanings ===<br />
<br />
For configure there are many options and some GRASS modules are built only if some options are set. Here are listed common configuration options with short explanation.<br />
<br />
* --prefix=/path - Sets path where GRASS will be installed. GRASS will reside in /path/grass-version.<br />
* --enable-largefile - Enables large (>2Gb on 32bit systems) support. For current large file support status look at [[Large File Support]] page.<br />
* --with-cxx - Enables compilation of C++ code. Required for r.terraflow module.<br />
* --with-readline - Enables readline support. If readline is enabled, you can use its history/editing facilities when entering r.mapcalc expressions on stdin.<br />
* --with-glw - Enables GLw support. The GLw library provides OpenGL "canvas" widgets for Athena and Motif. <br />
<br />
That switch is unnecessary for normal compilation. It's only<br />
required for r3.showdspf, which isn't normally built; if you <br />
want it, you have build it manually <br />
(e.g. "make -C raster3d/r3.showdspf").<br />
As similar functionality is now provided by NVIZ, r3.showdspf<br />
is deprecated.<br />
r3.showdspf uses the Motif widget (so you also need a <br />
Motif library, e.g. Lesstif or OpenMotif).<br />
[http://grass.itc.it/pipermail/grassuser/2006-December/037475.html Glynn Clements at GRASS-user mailing list]<br />
<br />
=== Parallelized compilation on multi-core CPUs ===<br />
<br />
You can dramatically accelerate the compilation of the GRASS code with the -j flag of "make" if you have a multi-core CPU system. This determines the maximum number of jobs to have running at once, so cores don't have to sit idle waiting for jobs on other cores to complete. A good rule of thumb for this value is <tt>number_of_cores * 1.5</tt>, but note that setting any higher than the actual number of cores will only affect the timing slightly. For example, on a dual-core processor:<br />
make -j 4<br />
<br />
<!-- CFLAGS="-pipe" doesn't seem to help much --><br />
<br />
== GRASS-GDAL plugin ==<br />
<br />
* see [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]]<br />
<br />
== Addons ==<br />
<br />
Please note that the installation of [[AddOns/GRASS_6|Addons]] can be easily done with the {{cmd|g.extension}} manager. The compile instructions below are aiming at own development.<br />
<br />
=== Compiled modules ===<br />
<br />
This is the general way which works for C modules as well as scripts (Python or Shell/Bash modules) which has HTML documentation.<br />
<br />
'''Requirements:'''<br />
<br />
Either:<br />
* a binary GRASS package, or<br />
* source code which has been prepared with:<br />
./configure [opionally flags]<br />
make libs<br />
<br />
Each of the [[GRASS_AddOns|addon]] modules should come with a Makefile. To compile it, just run:<br />
make MODULE_TOPDIR=/path/to/grass64/<br />
<br />
Note that the <tt>/path/to/grass64</tt> has to be absolute, not relative.<br />
<br />
If using Bash it may be useful to set that up as an alias:<br />
alias gmake64='make MODULE_TOPDIR=/path/to/grass64/'<br />
<br />
Installation (perhaps requires "sudo"):<br />
make MODULE_TOPDIR=/path/to/grass64/ install<br />
<br />
Note: Compiled addons may require a re-compilation if you changed/updated your GRASS standard binaries.<br />
<br />
==== If binary comes with a -dev package ====<br />
<br />
''(work in progress, this text states how it eventually will be :)''<br />
Nowadays one does not need to the source code, nor compiling GRASS by oneself to be able to add add-ons. On Debian, you can just install the grass-dev package and then run:<br />
make MODULE_TOPDIR=/usr/lib/grass64/ INST_DIR=/usr/lib/grass64/<br />
<br />
The grass-dev package essentially provides GRASS's <tt>include</tt> header files and Make configuration files.<br />
<br />
=== Scripts ===<br />
<br />
If the addon module is a script, it is sufficient to copy it into the (GRASS binaries) path somewhere. Alternatively, install addons into a separate GRASS addons binaries/scripts directory which is easier to maintain. It avoids getting clobbered every time you reinstall GRASS. To use these separately stored scripts, set and export the GRASS_ADDON_PATH environment variable before starting GRASS and it will automatically be added to the module search path (see the {{cmd|variables}} help page). To simplify this, do for example:<br />
<br />
# add in $HOME/.bashrc:<br />
GRASS_ADDON_PATH=/usr/local/grass/addons/<br />
export GRASS_ADDON_PATH<br />
<br />
Make sure that the script is executable, then just call it in GRASS typing the filename. Python scripts need to be called writing the extension as well, like:<br />
<br />
GRASS 6.5.svn (spearfish60):~ > v.krige.py<br />
<br />
[[Category:Development]]<br />
[[Category:Documentation]]<br />
[[Category:Installation]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install_Ubuntu&diff=27228Compile and Install Ubuntu2023-10-10T15:35:01Z<p>Neteler: </p>
<hr />
<div><div class="boilerplate metadata" id="attention" style="-moz-border-radius:30px; border: 1px double #35824B; margin-bottom: 1.5em; padding: 1em; background-color: #f9f9f9;"><br />
<p style="font-size: 150%; text-align: left;"><span style="color:#35824B">'''Attention'''</span>&nbsp;</p><span style="color:#333333">'''The following instructions describe the compilation and installation of GRASS GIS and its required dependencies completely from the source on Ubuntu based systems. Please, prefer pre-compiled packages over the manual way described below unless you know ''what'' and ''how'', you want to learn and help testing.'''</span><br />
</div><br />
<br />
== Quick instructions ==<br />
<br />
These instructions should work fine on Ubuntu distributions:<br />
<br />
=== Install geospatial dependencies ===<br />
<br />
1. Install some dependencies (PROJ, GEOS, GDAL libraries) and the compiler tools <br /><br />
(note: you need Python 3!)<br />
<br />
<source lang="bash"><br />
# be sure to have an updated system<br />
sudo apt-get update && sudo apt-get upgrade -y<br />
<br />
# install PROJ<br />
sudo apt-get install libproj-dev proj-data proj-bin unzip -y<br />
<br />
</source><br />
<del># optionally, install (selected) datum grid files</del><br /><br />
<del># Future: The proj-datumgrid packages have been deprecated with PROJ 7.0.0+</del><br /><br />
<del>cd /tmp</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-world-latest.zip</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-oceania-latest.zip</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-north-america-latest.zip</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-europe-latest.zip</del><br /><br />
<del># unpack and remove zip files</del><br /><br />
<del>cd /usr/share/proj/</del><br /><br />
<del>for datumfile in $(ls /tmp/proj-datumgrid-*-latest.zip) ; do</del><br /><br />
<del> sudo unzip $datumfile && rm -f $datumfile</del><br /><br />
<del>done</del><br /><br />
<br />
<source lang="bash"><br />
# optionally, install (selected) datum grid files<br />
sudo apt-get install proj-data<br />
<br />
# install GEOS<br />
sudo apt-get install libgeos-dev -y<br />
<br />
# install GDAL<br />
sudo apt-get install libgdal-dev python3-gdal gdal-bin -y<br />
<br />
# install PDAL (optional)<br />
sudo apt-get install libpdal-dev pdal libpdal-plugin-python -y<br />
<br />
# recommended to give Python3 precedence over Python2 (which is end-of-life since 2019)<br />
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1<br />
</source><br />
<br />
Install compiler stuff and further dependencies.<br />
Note: this is a single command, please copy-paste it entirely into the terminal:<br />
<br />
=== Install further compilation dependencies (Ubuntu 19.04) ===<br />
<br />
For Ubuntu 19.04<br />
<source lang="bash"><br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ ccache \<br />
python3 python3-dev \<br />
python3-opengl \<br />
python-wxversion python-wxtools python-wxgtk3.0 python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
libbz2-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpq-dev \<br />
libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev liblas-c-dev \<br />
subversion libzstd-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
This are optional video codec libraries for NVIZ video output for Ubuntu 19.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
libav-tools libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev <br />
</source><br />
<br />
=== Install further compilation dependencies (Ubuntu 20.04) ===<br />
<br />
For Ubuntu 20.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ ccache \<br />
python3 python3-dev \<br />
python3-opengl python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-gtk3-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
libbz2-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpq-dev \<br />
libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev libpdal-dev\<br />
subversion libzstd-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
For NVIZ on Ubuntu 20.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
ffmpeg libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev<br />
</source><br />
<br />
=== Install further compilation dependencies (Ubuntu 22.04) ===<br />
<br />
For Ubuntu 22.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ ccache \<br />
python3 python3-dev \<br />
python3-opengl python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-gtk3-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
libbz2-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpdal-dev libpq-dev \<br />
libreadline-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev libpdal-dev\<br />
subversion libzstd-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
For NVIZ on Ubuntu 22.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
ffmpeg libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev<br />
</source><br />
<br />
Update wxpython:<br />
<br />
<source lang="bash"><br />
pip3 install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 wxPython<br />
</source><br />
<br />
=== Source code download ===<br />
Now we have all "ingredients" readily installed on our system.<br />
<br />
'''Source code download''':<br />
<br />
There a two ways of getting the source code: either use a) the weekly snapshot (cannot be updated, or b) the source code from the GitHub repository (you can update your local copy easily in future):<br />
<br />
'''a) Download of the weekly source code snapshot (not recommended):'''<br />
<source lang="bash"><br />
# download latest GRASS GIS 8.x stable release source code:<br />
mkdir $HOME/src/<br />
cd $HOME/src/<br />
wget https://grass.osgeo.org/grass82/source/snapshot/grass-8.2.git_src_snapshot_latest.tar.gz<br />
<br />
# Unpack source code package and remove tarball archive:<br />
tar xvfz grass-8.2.git_src_snapshot_latest.tar.gz<br />
rm -f grass-8.2.git_src_snapshot_latest.tar.gz <br />
<br />
# rename source code directory (yes, with the questionmarks!)<br />
mv grass-8.2.git_src_snapshot_20??_??_?? grass-8.2.latest<br />
cd grass-8.2.latest/<br />
</source><br />
<br />
'''b) Download of the current development version from GitHub (adopt the path below accordingly)'''<br />
<source lang="bash"><br />
sudo apt-get install git<br />
git clone https://github.com/OSGeo/grass.git grass-8.2.latest.git<br />
cd grass-8.2.latest.git/<br />
git checkout releasebranch_8_2<br />
</source><br />
<br />
=== Compilation ===<br />
Now we can '''compile''' the source code in order to generate the GRASS GIS binaries:<br />
<br />
For Ubuntu 19.04<br />
<source lang="bash"><br />
# "configure" source code for local machine (checks for CPU type etc):<br />
MYCFLAGS='-O2 -fPIC -fno-common -fexceptions -std=gnu99 -fstack-protector -m64'<br />
#MYCXXFLAGS=''<br />
MYLDFLAGS='-Wl,--no-undefined -Wl,-z,now'<br />
<br />
LDFLAGS="$MYLDFLAGS" CFLAGS="$MYCFLAGS" CXXFLAGS="$MYCXXFLAGS" ./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-python \<br />
--with-geos \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-zstd \<br />
--with-liblas \<br />
--with-pdal \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-wxwidgets \<br />
--with-fftw \<br />
--with-motif \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--without-netcdf \<br />
--without-mysql \<br />
--without-odbc \<br />
--without-openmp \<br />
--without-ffmpeg<br />
</source><br />
<br />
Ubuntu 20.04/22.04 (without liblas but with PDAL):<br />
<source lang="bash"><br />
# "configure" source code for local machine (checks for CPU type etc):<br />
MYCFLAGS='-O2 -fPIC -fno-common -fexceptions -std=gnu99 -fstack-protector -m64'<br />
#MYCXXFLAGS=''<br />
MYLDFLAGS='-Wl,--no-undefined -Wl,-z,now'<br />
<br />
LDFLAGS="$MYLDFLAGS" CFLAGS="$MYCFLAGS" CXXFLAGS="$MYCXXFLAGS" ./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-python \<br />
--with-geos \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-zstd \<br />
--with-pdal \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-wxwidgets \<br />
--with-fftw \<br />
--with-motif \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--without-netcdf \<br />
--without-mysql \<br />
--without-odbc \<br />
--without-openmp \<br />
--without-ffmpeg<br />
</source><br />
<br />
Now compile the source code (this will take some time as it generates binary code from the source code):<br />
<source lang="bash"><br />
# note: the more CPUs you have, the higher the -j number may be set to<br />
# here: build using 4 CPU cores<br />
make -j4<br />
</source><br />
<br />
=== Installation ===<br />
<br />
Install resulting GRASS GIS binaries into /usr/local/:<br />
<source lang="bash"><br />
sudo make install<br />
</source><br />
<br />
Start GRASS GIS in the terminal:<br />
<source lang="bash"><br />
grass<br />
</source><br />
<br />
'''Done & enjoy!'''<br />
<br />
== Hints ==<br />
<br />
* Usually, the installation of compiled code is done by using the <source lang="bash" enclose="none">make</source> tool. Alternatively, this can be done by using the ''checkinstall'' tool (i.e., <source lang="bash" enclose="none">sudo checkinstall</source> instead of <source lang="bash" enclose="none">sudo make install</source>) which eases off removal of packages. If ''checkinstall'' fails to deliver, please note some related bugs: [https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/78455 78455] and [https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/599163 599163]. Useful information on using ''checkinstall'': [https://help.ubuntu.com/community/CompilingEasyHowTo Compiling things on Ubuntu the Easy Way].<br />
<br />
* In multi-core processors, the compilation performance can be boosted by using ''-j'' switches (e.g. <source lang="bash" enclose="none">make -j2</source> or <source lang="bash" enclose="none">make -j3</source> or even <source lang="bash" enclose="none">make -j4</source>) which specify the number of jobs (commands) to run simultaneously.<br />
<br />
== Pre-compiled packages and backports ==<br />
<br />
'''Pre-compiled packages and backports''' are available from [https://wiki.ubuntu.com/UbuntuGIS UbuntuGIS] via their [https://launchpad.net/~ubuntugis/+archive/ppa/ ppa.launchpad stable] and [https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable ppa.launchpad unstable] repositories. '''This is by far the simplest and fastest solution. Please prefer it over the manual way of compiling source code yourself as described below.'''<br />
<br />
Version overview:<br />
* jammy (22.04): 8.2<br />
* focal (20.04 LTS): 8.2<br />
* bionic (18.04 LTS): 7.8<br />
* xenial (16.04 LTS): 7.6<br />
* trusty (14.04 LTS): 7.4<br />
<br />
a) Daily ready-to-install GRASS GIS builds of the 7.x release branch and master are available from ''ppa:grass/grass-devel'':<br />
<br />
<source lang=bash><br />
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable<br />
sudo add-apt-repository ppa:grass/grass-devel<br />
</source><br />
<br />
b) Latest stable version of GRASS 7.x is available from ''ppa:grass/grass-stable'':<br />
<source lang=bash><br />
sudo add-apt-repository ppa:ubuntugis/ppa<br />
sudo add-apt-repository ppa:grass/grass-stable<br />
sudo apt-get update<br />
sudo apt-get install grass78<br />
</source><br />
<br />
== Dependencies ==<br />
<br />
=== Current stable Ubuntu version ===<br />
First, update the system from the repositories<source lang="bash"><br />
sudo apt-get update && sudo apt-get upgrade<br />
</source><br />
<br />
Then, install ''SQLite'', ''SVN'' and ''dependencies'' for compiling PROJ, GEOS, GDAL/OGR, GRASS, GDAL-GRASS-PLUGIN (some additional packages may be required in this case); the following action will also install various dependencies (listed in the command line as <source lang="bash" enclose="none">The following extra packages will be installed:</source>...):<br/><br />
<br />
The following dependencies concern [http://releases.ubuntu.com/xenial/ Ubuntu Xenial Xerus (16.04 LTS)]<br />
<br />
<source lang="bash"><br />
# this is a single command, please copy-paste it entirely into the terminal:<br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ cmake ccache \<br />
python python-dev \<br />
python-opengl \<br />
python-wxversion python-wxtools python-wxgtk3.0 \<br />
python-dateutil libgsl-dev python-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpq-dev \<br />
libreadline6 libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev liblas-c-dev \<br />
resolvconf \<br />
libjasper-dev \<br />
subversion \<br />
libav-tools libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript<br />
</source><br />
<br />
The following dependencies concern [http://releases.ubuntu.com/trusty/ Ubuntu Trusty Tahr (14.04 LTS)]<br />
<br />
<source lang="bash"><br />
# this is a single command, please copy-paste it entirely into the terminal:<br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ \<br />
python python-dev \<br />
python-dateutil libgsl0-dev python-numpy \<br />
zlib1g-dev gettext \<br />
libtiff-dev libpnglite-dev \<br />
sqlite3 libsqlite3-dev \<br />
libboost-thread-dev libboost-program-options-dev liblas-c-dev \<br />
resolvconf \<br />
subversion \<br />
checkinstall \<br />
cmake ccache \<br />
python-opengl \<br />
python-wxversion python-wxtools python-wxgtk2.8 \<br />
wx2.8-headers wx-common libwxgtk2.8-dev libwxgtk2.8-dbg \<br />
libwxbase2.8-dev libwxbase2.8-dbg \<br />
libncurses5-dev \<br />
libcairo2 libcairo2-dev \<br />
libpq-dev \<br />
libreadline6 libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libjasper-dev \<br />
libav-tools libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript</source><br />
<br />
<br />
* See the additional packages bellow and in other sections and install them. Note that some of them are [http://grass.osgeo.org/grass70/source/REQUIREMENTS.html required], namely PROJ.4, GEOS and GDAL. If you don't have special requirements, it is usually enough just to install PROJ.4, GEOS and GDAL from repository (rather then compile them manually).<br />
<br />
* for mysql support, <source lang="bash" enclose="none">libmysqlclient-dev</source> is required<br />
<source lang="bash"><br />
sudo apt-get install libmysqlclient-dev<br />
</source><br />
<br />
* for netcdf support, <source lang="bash" enclose="none">netcdf-bin</source> and <source lang="bash" enclose="none">libnetcdf-dev</source> is required<br />
<source lang="bash"><br />
sudo apt-get install netcdf-bin libnetcdf-dev<br />
</source><br />
<br />
* for {{AddonCmd|i.spec.unmix}} Addon support, install LAPACK and BLAS:<br />
<source lang="bash"><br />
sudo apt-get install libatlas-dev libblas-dev liblapack-dev<br />
</source><br />
<br />
* create a directory as a simple user where all source code is going to be stored -- in this example, a directory named <source lang="bash" enclose="none">src</source> under <source lang="bash" enclose="none">/usr/local</source> is created <source lang="bash"><br />
sudo mkdir /usr/local/src<br />
</source><br />
<br />
* take over directories ownerships ('''replace''' below the terms ''userid'' and ''groupid'' with a real <source lang="bash" enclose="none">userid</source>): <source lang="bash"><br />
sudo chown userid:groupid /usr/local/src</source><br />
<br />
* similarly, grant <source lang="bash" enclose="none">rwx</source> (read-write-execute) permissions for our ''userid'' and ''groupid'' onto the <source lang="bash" enclose="none">src</source> directory: <source lang="bash"><br />
sudo chmod ug+rwx /usr/local/src</source><br />
<br />
=== Earlier Ubuntu versions ===<br />
<br />
For [http://old-releases.ubuntu.com/releases/ earlier Ubuntu versions], '''watch out for dependency differences!''' Modify the dependency list given above as instructed below.<br />
<br />
* for [http://releases.ubuntu.com/raring/ Ubuntu Raring Ringtail (13.04]), change the following dependencies:<br />
** <source lang="bash" enclose="none">libav-tools libavutil-dev --> ffmpeg</source> <br />
** <source lang="bash" enclose="none"> --> lesstif2-dev</source><br />
<br />
* for [http://releases.ubuntu.com/precise/ Ubuntu Precise Pangolin (12.04)], change the following dependencies:<br />
** <source lang="bash" enclose="none">libpnglite-dev --> libpngwriter-dev</source><br />
** <source lang="bash" enclose="none">libtiff5-dev --> libtiff4-dev</source><br />
<br />
* for [http://old-releases.ubuntu.com/releases/maverick/ Ubuntu Maverick Meerkat (10.10)] or later, change the following dependencies:<br />
** <source lang="bash" enclose="none">libpngwriter-dev --> libpngwriter0-dev</source><br />
** <source lang="bash" enclose="none">libcairo-dev --> libcairo2-dev</source><br />
** <source lang="bash" enclose="none">fftw3 --> libfftw3-3</source><br />
** <source lang="bash" enclose="none">fftw3-dev --> libfftw3-dev</source><br />
<br />
* for [http://old-releases.ubuntu.com/releases/lucid/ Ubuntu Lucid Lynx (10.04)] or later, also install: <source lang="bash">sudo apt-get install libhdf4-alt-dev libhdf4-0-alt</source><br />
<br />
* for [http://old-releases.ubuntu.com/releases/ earlier Ubuntu versions], also install: <source lang="bash"> sudo apt-get install libhdf4g-dev libhdf4g-run</source><br />
<br />
== Using pre-compiled dev Packages for PROJ.4, GEOS and GDAL ==<br />
<br />
=== PROJ.4 ===<br />
<br />
Install the <source lang="bash" enclose="none">dev</source> package:<br />
<br />
<source lang="bash"><br />
sudo apt-get install libproj-dev proj-data proj-bin<br />
</source><br />
<br />
* In the call to <source lang="bash" enclose="none">./configure</source> for [[#GRASS|GRASS]], replace <source lang="bash" enclose="none">--with-proj-share=/usr/local/share/proj/</source> by <source lang="bash" enclose="none">--with-proj-share=/usr/share/proj/</source><br />
<br />
=== GEOS ===<br />
<br />
Install the <source lang="bash" enclose="none">dev</source> package:<br />
<br />
<source lang="bash"><br />
# probably you also need to additionally install "libgeos-c1v5"<br />
sudo apt-get install libgeos-dev<br />
</source><br />
<br />
* In the call to <source lang="bash" enclose="none">./configure</source> for [[#GRASS|GRASS]], replace <source lang="bash" enclose="none">--with-geos=/usr/local/bin/geos-config</source> by <source lang="bash" enclose="none">--with-geos=/usr/bin/geos-config</source><br />
<br />
=== GDAL ===<br />
<br />
Install the <source lang="bash" enclose="none">dev</source> package (possibly without support for datumgrid):<br />
<br />
<source lang="bash"><br />
sudo apt-get install libgdal-dev<br />
</source><br />
<br />
For support of WMS in wxGUI install Python GDAL bindings and GDAL executables:<br />
<source lang="bash"><br />
sudo apt-get install python-gdal gdal-bin<br />
</source><br />
<br />
* Install also the required extra packages (note the message: <source lang="bash" enclose="none">The following extra packages will be installed:</source>)<br />
* Look out for packages to be removed by this operation -- this is most likely caused by incompatible package versions. Fix these problems in advance using commands like the following: <source lang="bash"><br />
sudo apt-get install <package>=<required.version></source><br />
<br />
=== GRASS-GIS ===<br />
<br />
[[Compile_and_Install_Ubuntu#GRASS_GIS|Jump to sub-section GRASS-GIS below]]<br />
<br />
== Using pre-compiled dev Packages for PROJ.4, GEOS and GDAL from GIS.lab PPA==<br />
<br />
Ivan Mincik has made all required packages available in his [https://launchpad.net/~imincik/+archive/ubuntu/gis PPA]:<br />
<br />
<source lang="bash"><br />
sudo add-apt-repository ppa:imincik/gis<br />
sudo apt-get install libproj-dev libgdal-dev python-gdal libgeos-dev<br />
</source><br />
<br />
Now you can either also install GRASS GIS 7 from there or compile it yourself (see [[Compile_and_Install_Ubuntu#GRASS_GIS|Jump to sub-section GRASS-GIS below]])<br />
<br />
== Compile from source ==<br />
<br />
<br />
=== PROJ4 ===<br />
<br />
* within the directory <source lang="bash" enclose="none">/usr/local/src</source> (create it if it does not exist) checkout <source lang="bash" enclose="none">proj</source> from its Subversion repository: <source lang="bash"><br />
svn co http://svn.osgeo.org/metacrs/proj/branches/4.8/proj/<br />
</source><br />
<br />
* get [http://download.osgeo.org/proj/proj-datumgrid-1.5.zip '''proj-datumgrid-1.5.zip'''] from [http://trac.osgeo.org/proj proj' trac] and move it under <source lang="bash" enclose="none">proj/nad</source><br />
<ul><source lang="bash"><br />
wget http://download.osgeo.org/proj/proj-datumgrid-1.5.zip<br />
mv proj-datumgrid-1.5.zip /usr/local/src/proj/nad<br />
cd /usr/local/src/proj/nad<br />
</source><br />
</ul><br />
<br />
* decompress it <source lang="bash"><br />
unzip proj-datumgrid-1.5.zip<br />
</source><br />
<br />
* go back to the <source lang="bash" enclose="none">proj</source> directory <source lang="bash"><br />
cd /usr/local/src/proj<br />
</source><br />
<br />
* if required, clean previous configuration & compilation <source lang="bash"><br />
make distclean<br />
</source><br />
<br />
* simple configure, compile and install <source lang="bash"><br />
./configure && make && sudo make install<br />
</source><br />
<ul> or <source lang="bash"><br />
./configure && make -j2 && sudo checkinstall<br />
</source><br />
</ul><br />
<br />
* ensure that <source lang="bash" enclose="none">/usr/local/lib</source> is added to <source lang="bash" enclose="none">/etc/ld.so.conf</source> and afterwards run <source lang="bash"><br />
sudo ldconfig<br />
</source><br />
<br />
* finally, go back to the parent directory simply by instructing<source lang="bash"><br />
cd ..<br />
</source><br />
<br />
=== GEOS ===<br />
<br />
* download '''geos-3.4.2.tar.bz2''' from [http://trac.osgeo.org/geos/ http://trac.osgeo.org/geos] using <source lang="bash" enclose="none">wget</source> <source lang="bash"><br />
wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2<br />
</source><br />
<br />
* move to the "source-code" directory and decompress<br />
<ul><source lang="bash"><br />
cd /usr/local/src/<br />
bunzip2 geos-3.4.2.tar.bz2<br />
tar xvf geos-3.4.2.tar<br />
</source><br />
</ul><br />
<br />
* if required, clean previous configuration & compilation <source lang="bash"><br />
make distclean<br />
</source><br />
<br />
* move to geos directory <source lang="bash"><br />
cd geos-3.4.2<br />
</source><br />
<br />
* simple configure, compile and install <source lang="bash"><br />
./configure && make && sudo make install<br />
</source><br />
<ul> or <source lang="bash"><br />
./configure && make -j2 && sudo checkinstall<br />
</source><br />
</ul><br />
<br />
* do not forget to execute <source lang="bash"><br />
sudo ldconfig<br />
</source><br />
<br />
=== GDAL ===<br />
<br />
'''Note''', GDAL must be compiled '''without''' GRASS support<br />
<br />
* download the current stable version <source lang="bash"><br />
svn co https://svn.osgeo.org/gdal/branches/1.11/gdal gdal_stable<br />
</source><br />
<br />
* enter in the <source lang="bash" enclose="none">gdal_stable</source> directory <source lang="bash"><br />
cd /usr/local/src/gdal_stable<br />
</source><br />
<br />
* optionally, update the source code <source lang="bash"><br />
svn up<br />
</source><br />
<br />
* if required, clean previous configurations/compilations <source lang="bash"><br />
make distclean<br />
</source><br />
<br />
* a simple configuration without any parameters will detect and support various installed libraries <source lang="bash"><br />
./configure<br />
</source><br />
<br />
* skip to the ''compile and install'' step or check the following customised configuration example<br />
<ul><br />
<source lang="bash"><br />
CFLAGS="-g -Wall" LDFLAGS="-s" ./configure \<br />
--with-png=internal \<br />
--with-libtiff=internal \<br />
--with-geotiff=internal \<br />
--with-jpeg=internal \<br />
--with-gif=internal \<br />
--with-ecw=no \<br />
--with-expat=yes \<br />
--with-sqlite3=yes \<br />
--with-geos=yes \<br />
--with-python \<br />
--with-libz=internal \<br />
--with-netcdf \<br />
--with-threads=yes \<br />
--without-grass \<br />
--without-ogdi \<br />
--with-pg=/usr/bin/pg_config \<br />
--with-xerces=yes<br />
</source><br />
</ul><br />
<br />
* compile, install & ldconfig <source lang="bash"><br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<ul> or <source lang="bash"><br />
make -j2 && sudo checkinstall && sudo ldconfig<br />
</source><br />
</ul><br />
<br />
=== GRASS GIS ===<br />
<br />
Note the differences between different GRASS version (SVN branches) in download and cofiguration. Note also the changes required if you installed some of the dependencies from packages (rather then compiled them yourself).<br />
<br />
To fully understand the build process, read the <code>INSTALL</code> file, which is located in GRASS' source code root directory. For example, if you have problems related to 32bit versus 64bit, pay attention to section <code>(C)</code>, entitled <code>COMPILATION NOTES for 64bit platforms</code>.<br />
<br />
''' Getting GRASS' source code '''<br />
<br />
Select from one of the GRASS GIS versions and download (using SVN) the source code:<br />
<br />
* VERY OLD STABLE VERSION: current state of the 6.4.x release branch version (stable) <source lang="bash"><br />
svn co https://svn.osgeo.org/grass/grass/branches/releasebranch_6_4 grass64_release<br />
</source><br />
<br />
* STABLE VERSION: current state of the 7.2.x release branch version (current stable) <source lang="bash"><br />
svn co https://svn.osgeo.org/grass/grass/branches/releasebranch_7_2 grass72_release<br />
</source><br />
<br />
* DEVELOPMENT VERSION: current state of the trunk (latest version of code where the development happens) <source lang="bash"><br />
svn co https://svn.osgeo.org/grass/grass/trunk grass7_trunk<br />
</source><br />
<br />
* for other versions see [http://trac.osgeo.org/grass/wiki/DownloadSource GRASS Trac wiki].<br />
<br />
''' Configure, Compile and Install'''<br />
<br />
Enter the directory with the source code (downloaded by svn client), for example:<br />
<br />
<source lang="bash"><br />
cd grass72_release<br />
</source><br />
<br />
* '''GRASS GIS 6 example configuration''' (which can/should be adjusted according to specific needs):<br />
<ul><br />
<source lang="bash"><br />
CFLAGS="-O2 -Wall" LDFLAGS="-s" ./configure \<br />
--enable-largefile=yes \<br />
--with-nls \<br />
--with-cxx \<br />
--with-proj-share=/usr/local/share/proj/ \<br />
--with-geos=/usr/local/bin/geos-config \<br />
--with-readline \<br />
--with-python=yes \<br />
--with-wxwidgets \<br />
--with-cairo \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-motif \<br />
--with-tcltk-includes="/usr/include/tcl8.5" \<br />
--with-ffmpeg=yes --with-ffmpeg-includes="/usr/include/libavcodec /usr/include/libavformat /usr/include/libswscale /usr/include/libavutil" \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--with-sqlite=yes \<br />
--with-mysql=yes --with-mysql-includes="/usr/include/mysql" \<br />
--with-odbc=no<br />
</source><br />
</ul><br />
<ul><br />
'''Note''', the above configuration uses the <code>Proj4</code> and <code>GEOS</code> packages compiled from the source. In the case that pre-compiled versions from the repository are required, remove the above corresponding lines to use the "defaults", i.e. <source lang="bash"><br />
--with-proj-share=/usr/share/proj \<br />
--with-geos=/usr/bin/geos-config \<br />
</source><br />
</ul><br />
<br />
* '''GRASS GIS 7 example configuration''' (which can/should be adjusted according to specific needs):<br />
<ul><br />
<source lang="bash"><br />
CFLAGS="-O2 -Wall" LDFLAGS="-s" ./configure \<br />
--enable-largefile=yes \<br />
--with-nls \<br />
--with-cxx \<br />
--with-readline \<br />
--with-proj-share=/usr/local/share/proj/ \<br />
--with-geos=/usr/local/bin/geos-config \<br />
--with-wxwidgets \<br />
--with-cairo \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--with-sqlite=yes \<br />
--with-mysql=yes --with-mysql-includes="/usr/include/mysql" \<br />
--with-odbc=no \<br />
--with-liblas=yes --with-liblas-config=/usr/bin/liblas-config<br />
</source><br />
</ul><br />
<ul><br />
'''Note''', the above configuration uses the <code>Proj4</code> and <code>GEOS</code> packages compiled from the source. In the case that pre-compiled versions from the repository are required, remove the above corresponding lines to use the "defaults", i.e. (note the backslashe at the end of each line)<br />
<source lang="bash"><br />
--with-proj-share=/usr/share/proj \<br />
--with-geos=/usr/bin/geos-config \<br />
</source><br />
'''Note 2''', if compiling with liblas, you will want liblas compiled with laszip support. liblas will look for laszip includes in /usr/local/include/laszip by default. Creating the laszip directory in /usr/local/include and making a soft link. ln -s /usr/local/include/lasz*.hpp /usr/local/include/laszip and ln -s /usr/local/include/lasunz*.hpp /usr/local/include/laszip should allow liblas to compile with laszip support <br />
</ul><br />
<br />
* compile & install <source lang="bash"><br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<br />
<ul> or <source lang="bash"><br />
make -j2 && sudo checkinstall && sudo ldconfig<br />
</source><br />
</ul><br />
<br />
For subsequent updates execute (not need for the first time):<br />
<source lang="bash"><br />
svn up<br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<br />
Sometimes, it is required to clean previous configuration and compilation:<br />
<source lang="bash"><br />
make distclean<br />
svn up<br />
./configure ... # (use the configure command above)<br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<br />
=== GDAL-GRASS-Plugin ===<br />
<br />
* get the plugin from [http://download.osgeo.org/gdal/ OSGeo's Download Server]: "gdal-grass-X.Y.Z.tar.gz" using <source lang="bash" enclose="none">wget</source><br />
<ul><source lang="bash"><br />
# update version number accordingly!<br />
wget http://download.osgeo.org/gdal/3.2.3/gdal-grass-3.2.3.tar.gz<br />
tar xvzf gdal-grass-3.2.3.tar.gz<br />
cd gdal-grass-3.2.3<br />
</source></ul><br />
<br />
* create <source lang="bash" enclose="none">/etc/ld.so.conf.d/grass.conf</source> or add in <source lang="bash" enclose="none">/etc/ld.so.conf</source> the GRASS library path: <br />
<ul><source lang="bash"><br />
# GRASS 7.8 library path (adapt as needed)<br />
/usr/local/src/releasebranch_7_8/lib<br />
<br />
# GRASS 7 (development version) library path (adapt as needed)<br />
/usr/local/src/grass_master/lib<br />
</source></ul><br />
<br />
* optionally, clean previous configurations/compilations<source lang="bash"><br />
make distclean</source><br />
<br />
* configure -- point to GRASS installation/binaries<br />
<ul><source lang="bash"> ./configure \<br />
--prefix=/usr/local \<br />
--with-gdal=/usr/local/bin/gdal-config \<br />
--with-grass=/usr/local/grass-7.8.git/ \<br />
--with-autoload="/usr/local/lib64/gdalplugins/" \<br />
--with-ld-shared="g++ -shared"</source></ul><br />
<ul><br />
* for GRASS 7.6, replace with <source lang="bash" enclose="none"> --with-grass=/usr/local/grass-7.6.3/</source><br />
* for GRASS 7.x...<br />
</ul><br />
<br />
* compile & install using checkinstall<source lang="bash"><br />
make -j2 && sudo checkinstall</source><br />
<br />
= Post compilation/installation control =<br />
<br />
* For a recommended quick-check read the [http://grass.osgeo.org/wiki/Compile_and_install_GRASS_and_QGIS_with_GDAL/OGR_Plugin#Troubleshooting Troubleshooting] section at [http://grass.osgeo.org/wiki/Compile_and_install_GDAL-GRASS_plugin Compile_and_install_GDAL-GRASS_plugin]<br />
<br />
* in case of errors in future compilation attempts, remember to remove program binaries and files created with the "configuration" from previous compilations with<br />
make distclean<br />
<br />
* another common mistake is compiling a module against some GRASS version and then try to run it through another GRASS version. The solution is to recompile the affected module or, in case there are multiple GRASS installations, set up properly LD_LIBRARY_PATH paths.<br />
<br />
<br />
= Removal of GRASS =<br />
<br />
<br />
To get rid of a GRASS binaries installation, delete (update version numbers accordingly)<br />
* <source lang="bash" enclose="none">/usr/local/grass-7.8.1.dev</source> (directory, binaries location)<br />
* <source lang="bash" enclose="none">/usr/local/bin/grass78</source> (file)<br />
* <source lang="bash" enclose="none">/home/username/.grassrc7</source> (file)<br />
<br />
<br />
If wanted, delete also the complete source code:<br />
* <source lang="bash" enclose="none">/usr/local/src/grass78_release</source> (directory, source code location)<br />
<br />
<br />
To remove <code>grass</code> (or any other package) which was installed by <source lang="bash" enclose="none">checkinstall</source>, use <source lang="bash" enclose="none">dpkg</source>, e.g.<source lang="bash"><br />
sudo dpkg -r grass78 # package name defined at installation is important</source><br />
<br />
= Packaging of GRASS =<br />
<br />
* See https://salsa.debian.org/debian-gis-team/grass/tree/master/debian for directions on rolling your own packages.<br />
<br />
For details about the auto-nightly-builds and after-market supplied packages from UbuntuGIS, please refer to the [[Ubuntu Packaging]] wiki page.<br />
<br />
== See also ==<br />
<br />
* Docker: https://grass.osgeo.org/download/software/docker-images/<br />
* [[Ubuntu Packaging]]<br />
* [[GRASS in Debian]]<br />
<br />
= Archived Notes =<br />
<br />
Notes that concern the configuration and compilation of GRASS GIS and its dependencies for older versions of Ubuntu-Linux.<br />
<br />
== Ubuntu 7.10 64-bit ==<br />
<br />
* Compiling latest GRASS source code on a 64-bit machine (with an ATI graphic card) under Ubuntu 7.10 64-bit with support for: 64-bit, SQLite, OpenGL, PYTHON, FFMPEG<br />
(Based on "Ubuntu 6.06 LTS - GRASS 6.1 Compilation Script" by David Finlayson)<br />
''Assuming it is the first time attempting to compile GRASS' source code & installing SVN, PROJ, GDAL/OGR''<br />
<br />
'''Preparation'''<br />
sudo apt-get update && sudo apt-get upgrade<br />
<br />
* install dependencies for compiling (in general) and dependencies for GRASS: PROJ, GDAL/OGR<br />
sudo apt-get install grass build-essential flex bison libncurses5-dev zlib1g-dev \<br />
libgdal1-dev libtiff4-dev libgcc1 libpng12-dev tcl8.4-dev tk8.4-dev fftw3-dev \<br />
libfreetype6-dev libavcodec-dev libxmu-dev gdal-bin libreadline5 libreadline5-dev \<br />
make python-dev python-wxversion<br />
<br />
* install SQLite<br />
sudo apt-get install sqlite3 libsqlite3-dev<br />
<br />
* install SVN<br />
sudo apt-get install subversion<br />
<br />
* create a directory as a simple user where source code(s) are going to be stored (in our example we use a directory called '''src''' under '''/usr/local''')<br />
<br />
sudo mkdir /usr/local/src<br />
<br />
* grant rwx (read-write-execute) permissions for our userid/ groupid on the directory (replace words userid and groupid with real userid):<br />
sudo chown ''userid'':''groupid'' /usr/local/src<br />
<br />
sudo chmod ug+rwx /usr/local/src<br />
<br />
* download latest source code from GRASS SVN repository in a directory on the system (e.g. /usr/local/src)<br />
svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk<br />
<br />
* Above command places GRASS' source code in '''/usr/local/src/grass_trunk'''. In case of a subsequent update use the command: '''svn up''' from within the grass_trunk directory<br />
<br />
----<br />
'''Before''' attempting to compile GRASS, READ section (C) in the '''INSTALL''' file located in the main directory of GRASS source code entitled:<br />
'''(C) COMPILATION NOTES for 64bit platforms'''<br />
----<br />
<br />
* installing FFTW3 if not already on system<br />
sudo apt-get install fftw3 fftw3-dev<br />
<br />
'''FFMPEG'''<br />
<br />
Note: Back in Ubuntu 7.10, installing ffmpeg through the repositories wouldn't work with grass. The following steps were successfully used.<br />
<br />
* install FFMPEG (information taken from: http://stream0.org/2008/01/install-ffmpeg-on-ubuntu-gutsy.html)<br />
* download source code with svn<br />
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg<br />
<br />
* install dependencies<br />
sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev \<br />
liba52-0.7.4 liba52-0.7.4-dev libx264-dev libdts-dev checkinstall \<br />
build-essential subversion<br />
<br />
* guide to ffmpeg directory<br />
cd ffmpeg<br />
<br />
if necessary: '''make distclean''' before configuration (look at notes below)<br />
<br />
* configuration ('''note:''' the configuration parameter "'''--enable-pp'''" does not work anymore)<br />
# configure FFMPEG<br />
./configure --enable-gpl --enable-libvorbis --enable-libtheora \<br />
--enable-liba52 --enable-libdc1394 --enable-libgsm \<br />
--enable-libmp3lame --enable-libfaad --enable-libfaac \<br />
--enable-libxvid --enable-libx264 \<br />
--enable-shared<br />
<br />
* compilation<br />
make<br />
<br />
* installation on /usr/local/bin -- important to remember when configuring GRASS' source code for compilation<br />
sudo checkinstall<br />
<br />
'''Go for GRASS!'''<br />
* in our example we used the /usr/local/src directory to store GRASS' source code, so:<br />
cd /usr/local/src/grass_trunk<br />
<br />
* configuration<br />
CFLAGS="-g -Wall" ./configure --enable-64bit \<br />
--with-libs=/usr/lib64 --with-cxx --with-freetype=yes \<br />
--with-postgres=no --with-sqlite=yes --enable-largefile=yes \<br />
--with-tcltk-includes=/usr/include/tcl8.4 \<br />
--with-freetype-includes=/usr/include/freetype2 \<br />
--with-opengl-libs=/usr/include/GL --with-readline \<br />
--with-python=yes --with-ffmpeg=yes \<br />
--with-ffmpeg-includes=/usr/local/include/ffmpeg<br />
<br />
*if OpenGL fails then maybe it is necessary to link '''glxATI.h''' with '''glx.h''' and re-run the configuration<br />
<br />
cd /usr/include/GL<br />
<br />
sudo ln glxATI.h glx.h<br />
<br />
* compilation<br />
make<br />
<br />
* compilation is expected to end with a statement similar to the following:<br />
<br />
Started compilation: Wed Feb 27 00:24:36 CET 2008<br />
--<br />
Errors in:<br />
No errors detected.<br />
<br />
* installation<br />
sudo checkinstall<br />
<br />
* launch 64-bit GRASS.6.4.svn<br />
grass64<br />
<br />
'''Notes'''<br />
* in case of errors in future compilation attempts, remember to remove program binaries with<br />
make clean<br />
* and the files created with the "configuration" from previous compilations with<br />
make distclean<br />
<br />
== Ubuntu 6.06, 7.10 ==<br />
<br />
* [http://david.p.finlayson.googlepages.com/makegrass.sh makegrass.sh] is script designed to automate most of the download, configuration and compilation of GRASS 6.x-CVS<br />
** it is advised use [https://help.ubuntu.com/community/CheckInstall checkinstall] (''sudo apt-get install checkinstall'') instead of ''make install'' to keep track of installed software <br />
** Think twice before using this script. Some users experienced problems such as disabled XGL etc.<br />
* [[User:Steko/Automated_CVS_compiling|Here]] is another of these scripts, it's homemade so probably you'll find the above more useful for production sites.<br />
<br />
<br />
[[Category: Compilation]]<br />
[[Category: Installation]]<br />
[[Category: Ubuntu]]<br />
[[Category: FAQ]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install_Ubuntu&diff=27226Compile and Install Ubuntu2023-10-10T11:54:00Z<p>Neteler: +Update wxpython</p>
<hr />
<div><div class="boilerplate metadata" id="attention" style="-moz-border-radius:30px; border: 1px double #35824B; margin-bottom: 1.5em; padding: 1em; background-color: #f9f9f9;"><br />
<p style="font-size: 150%; text-align: left;"><span style="color:#35824B">'''Attention'''</span>&nbsp;</p><span style="color:#333333">'''The following instructions describe the compilation and installation of 7.x and its required dependencies completely from the source on Ubuntu based systems. Please, prefer pre-compiled packages over the manual way described below unless you know ''what'' and ''how'', you want to learn and help testing.'''</span><br />
</div><br />
<br />
== Quick instructions ==<br />
<br />
These instructions should work fine on Ubuntu distributions:<br />
<br />
=== Install geospatial dependencies ===<br />
<br />
1. Install some dependencies (PROJ, GEOS, GDAL libraries) and the compiler tools <br /><br />
(note: for GRASS GIS 7.8+ you need Python 3!)<br />
<br />
<source lang="bash"><br />
# be sure to have an updated system<br />
sudo apt-get update && sudo apt-get upgrade -y<br />
<br />
# install PROJ<br />
sudo apt-get install libproj-dev proj-data proj-bin unzip -y<br />
<br />
</source><br />
<del># optionally, install (selected) datum grid files</del><br /><br />
<del># Future: The proj-datumgrid packages have been deprecated with PROJ 7.0.0+</del><br /><br />
<del>cd /tmp</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-world-latest.zip</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-oceania-latest.zip</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-north-america-latest.zip</del><br /><br />
<del>wget -c https://download.osgeo.org/proj/proj-datumgrid-europe-latest.zip</del><br /><br />
<del># unpack and remove zip files</del><br /><br />
<del>cd /usr/share/proj/</del><br /><br />
<del>for datumfile in $(ls /tmp/proj-datumgrid-*-latest.zip) ; do</del><br /><br />
<del> sudo unzip $datumfile && rm -f $datumfile</del><br /><br />
<del>done</del><br /><br />
<br />
<source lang="bash"><br />
# optionally, install (selected) datum grid files<br />
sudo apt-get install proj-data<br />
<br />
# install GEOS<br />
sudo apt-get install libgeos-dev -y<br />
<br />
# install GDAL<br />
sudo apt-get install libgdal-dev python3-gdal gdal-bin -y<br />
<br />
# install PDAL (optional)<br />
sudo apt-get install libpdal-dev pdal libpdal-plugin-python -y<br />
<br />
# recommended to give Python3 precedence over Python2 (which is end-of-life since 2019)<br />
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1<br />
</source><br />
<br />
Install compiler stuff and further dependencies.<br />
Note: this is a single command, please copy-paste it entirely into the terminal:<br />
<br />
=== Install further compilation dependencies (Ubuntu 19.04) ===<br />
<br />
For Ubuntu 19.04<br />
<source lang="bash"><br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ ccache \<br />
python3 python3-dev \<br />
python3-opengl \<br />
python-wxversion python-wxtools python-wxgtk3.0 python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
libbz2-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpq-dev \<br />
libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev liblas-c-dev \<br />
subversion libzstd-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
This are optional video codec libraries for NVIZ video output for Ubuntu 19.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
libav-tools libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev <br />
</source><br />
<br />
=== Install further compilation dependencies (Ubuntu 20.04) ===<br />
<br />
For Ubuntu 20.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ ccache \<br />
python3 python3-dev \<br />
python3-opengl python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-gtk3-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
libbz2-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpq-dev \<br />
libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev libpdal-dev\<br />
subversion libzstd-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
For NVIZ on Ubuntu 20.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
ffmpeg libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev<br />
</source><br />
<br />
=== Install further compilation dependencies (Ubuntu 22.04) ===<br />
<br />
For Ubuntu 22.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ ccache \<br />
python3 python3-dev \<br />
python3-opengl python3-wxgtk4.0 \<br />
python3-dateutil libgsl-dev python3-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-gtk3-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
libbz2-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpdal-dev libpq-dev \<br />
libreadline-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev libpdal-dev\<br />
subversion libzstd-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript wget -y<br />
</source><br />
<br />
For NVIZ on Ubuntu 22.04:<br />
<source lang="bash"><br />
sudo apt-get install \<br />
ffmpeg libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev<br />
</source><br />
<br />
Update wxpython:<br />
<br />
<source lang="bash"><br />
pip3 install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 wxPython<br />
</source><br />
<br />
=== Source code download ===<br />
Now we have all "ingredients" readily installed on our system.<br />
<br />
'''Source code download''':<br />
<br />
There a two ways of getting the source code: either use a) the weekly snapshot (cannot be updated, or b) the source code from the GitHub repository (you can update your local copy easily in future):<br />
<br />
'''a) Download of the weekly source code snapshot (not recommended):'''<br />
<source lang="bash"><br />
# download latest GRASS GIS 8.x stable release source code:<br />
mkdir $HOME/src/<br />
cd $HOME/src/<br />
wget https://grass.osgeo.org/grass82/source/snapshot/grass-8.2.git_src_snapshot_latest.tar.gz<br />
<br />
# Unpack source code package and remove tarball archive:<br />
tar xvfz grass-8.2.git_src_snapshot_latest.tar.gz<br />
rm -f grass-8.2.git_src_snapshot_latest.tar.gz <br />
<br />
# rename source code directory (yes, with the questionmarks!)<br />
mv grass-8.2.git_src_snapshot_20??_??_?? grass-8.2.latest<br />
cd grass-8.2.latest/<br />
</source><br />
<br />
'''b) Download of the current development version from GitHub (adopt the path below accordingly)'''<br />
<source lang="bash"><br />
sudo apt-get install git<br />
git clone https://github.com/OSGeo/grass.git grass-8.2.latest.git<br />
cd grass-8.2.latest.git/<br />
git checkout releasebranch_8_2<br />
</source><br />
<br />
=== Compilation ===<br />
Now we can '''compile''' the source code in order to generate the GRASS GIS binaries:<br />
<br />
For Ubuntu 19.04<br />
<source lang="bash"><br />
# "configure" source code for local machine (checks for CPU type etc):<br />
MYCFLAGS='-O2 -fPIC -fno-common -fexceptions -std=gnu99 -fstack-protector -m64'<br />
#MYCXXFLAGS=''<br />
MYLDFLAGS='-Wl,--no-undefined -Wl,-z,now'<br />
<br />
LDFLAGS="$MYLDFLAGS" CFLAGS="$MYCFLAGS" CXXFLAGS="$MYCXXFLAGS" ./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-python \<br />
--with-geos \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-zstd \<br />
--with-liblas \<br />
--with-pdal \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-wxwidgets \<br />
--with-fftw \<br />
--with-motif \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--without-netcdf \<br />
--without-mysql \<br />
--without-odbc \<br />
--without-openmp \<br />
--without-ffmpeg<br />
</source><br />
<br />
Ubuntu 20.04/22.04 (without liblas but with PDAL):<br />
<source lang="bash"><br />
# "configure" source code for local machine (checks for CPU type etc):<br />
MYCFLAGS='-O2 -fPIC -fno-common -fexceptions -std=gnu99 -fstack-protector -m64'<br />
#MYCXXFLAGS=''<br />
MYLDFLAGS='-Wl,--no-undefined -Wl,-z,now'<br />
<br />
LDFLAGS="$MYLDFLAGS" CFLAGS="$MYCFLAGS" CXXFLAGS="$MYCXXFLAGS" ./configure \<br />
--with-cxx \<br />
--enable-largefile \<br />
--with-proj --with-proj-share=/usr/share/proj \<br />
--with-gdal=/usr/bin/gdal-config \<br />
--with-python \<br />
--with-geos \<br />
--with-sqlite \<br />
--with-nls \<br />
--with-zstd \<br />
--with-pdal \<br />
--with-cairo --with-cairo-ldflags=-lfontconfig \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-wxwidgets \<br />
--with-fftw \<br />
--with-motif \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--without-netcdf \<br />
--without-mysql \<br />
--without-odbc \<br />
--without-openmp \<br />
--without-ffmpeg<br />
</source><br />
<br />
Now compile the source code (this will take some time as it generates binary code from the source code):<br />
<source lang="bash"><br />
# note: the more CPUs you have, the higher the -j number may be set to<br />
# here: build using 4 CPU cores<br />
make -j4<br />
</source><br />
<br />
=== Installation ===<br />
<br />
Install resulting GRASS GIS binaries into /usr/local/:<br />
<source lang="bash"><br />
sudo make install<br />
</source><br />
<br />
Start GRASS GIS in the terminal:<br />
<source lang="bash"><br />
grass<br />
</source><br />
<br />
'''Done & enjoy!'''<br />
<br />
== Hints ==<br />
<br />
* Usually, the installation of compiled code is done by using the <source lang="bash" enclose="none">make</source> tool. Alternatively, this can be done by using the ''checkinstall'' tool (i.e., <source lang="bash" enclose="none">sudo checkinstall</source> instead of <source lang="bash" enclose="none">sudo make install</source>) which eases off removal of packages. If ''checkinstall'' fails to deliver, please note some related bugs: [https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/78455 78455] and [https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/599163 599163]. Useful information on using ''checkinstall'': [https://help.ubuntu.com/community/CompilingEasyHowTo Compiling things on Ubuntu the Easy Way].<br />
<br />
* In multi-core processors, the compilation performance can be boosted by using ''-j'' switches (e.g. <source lang="bash" enclose="none">make -j2</source> or <source lang="bash" enclose="none">make -j3</source> or even <source lang="bash" enclose="none">make -j4</source>) which specify the number of jobs (commands) to run simultaneously.<br />
<br />
== Pre-compiled packages and backports ==<br />
<br />
'''Pre-compiled packages and backports''' are available from [https://wiki.ubuntu.com/UbuntuGIS UbuntuGIS] via their [https://launchpad.net/~ubuntugis/+archive/ppa/ ppa.launchpad stable] and [https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable ppa.launchpad unstable] repositories. '''This is by far the simplest and fastest solution. Please prefer it over the manual way of compiling source code yourself as described below.'''<br />
<br />
Version overview:<br />
* jammy (22.04): 8.2<br />
* focal (20.04 LTS): 8.2<br />
* bionic (18.04 LTS): 7.8<br />
* xenial (16.04 LTS): 7.6<br />
* trusty (14.04 LTS): 7.4<br />
<br />
a) Daily ready-to-install GRASS GIS builds of the 7.x release branch and master are available from ''ppa:grass/grass-devel'':<br />
<br />
<source lang=bash><br />
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable<br />
sudo add-apt-repository ppa:grass/grass-devel<br />
</source><br />
<br />
b) Latest stable version of GRASS 7.x is available from ''ppa:grass/grass-stable'':<br />
<source lang=bash><br />
sudo add-apt-repository ppa:ubuntugis/ppa<br />
sudo add-apt-repository ppa:grass/grass-stable<br />
sudo apt-get update<br />
sudo apt-get install grass78<br />
</source><br />
<br />
== Dependencies ==<br />
<br />
=== Current stable Ubuntu version ===<br />
First, update the system from the repositories<source lang="bash"><br />
sudo apt-get update && sudo apt-get upgrade<br />
</source><br />
<br />
Then, install ''SQLite'', ''SVN'' and ''dependencies'' for compiling PROJ, GEOS, GDAL/OGR, GRASS, GDAL-GRASS-PLUGIN (some additional packages may be required in this case); the following action will also install various dependencies (listed in the command line as <source lang="bash" enclose="none">The following extra packages will be installed:</source>...):<br/><br />
<br />
The following dependencies concern [http://releases.ubuntu.com/xenial/ Ubuntu Xenial Xerus (16.04 LTS)]<br />
<br />
<source lang="bash"><br />
# this is a single command, please copy-paste it entirely into the terminal:<br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ cmake ccache \<br />
python python-dev \<br />
python-opengl \<br />
python-wxversion python-wxtools python-wxgtk3.0 \<br />
python-dateutil libgsl-dev python-numpy \<br />
wx3.0-headers wx-common libwxgtk3.0-dev \<br />
libwxbase3.0-dev \<br />
libncurses5-dev \<br />
zlib1g-dev gettext \<br />
libtiff5-dev libpnglite-dev \<br />
libcairo2 libcairo2-dev \<br />
sqlite3 libsqlite3-dev \<br />
libpq-dev \<br />
libreadline6 libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libboost-thread-dev libboost-program-options-dev liblas-c-dev \<br />
resolvconf \<br />
libjasper-dev \<br />
subversion \<br />
libav-tools libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev \<br />
checkinstall \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript<br />
</source><br />
<br />
The following dependencies concern [http://releases.ubuntu.com/trusty/ Ubuntu Trusty Tahr (14.04 LTS)]<br />
<br />
<source lang="bash"><br />
# this is a single command, please copy-paste it entirely into the terminal:<br />
sudo apt-get install \<br />
build-essential \<br />
flex make bison gcc libgcc1 g++ \<br />
python python-dev \<br />
python-dateutil libgsl0-dev python-numpy \<br />
zlib1g-dev gettext \<br />
libtiff-dev libpnglite-dev \<br />
sqlite3 libsqlite3-dev \<br />
libboost-thread-dev libboost-program-options-dev liblas-c-dev \<br />
resolvconf \<br />
subversion \<br />
checkinstall \<br />
cmake ccache \<br />
python-opengl \<br />
python-wxversion python-wxtools python-wxgtk2.8 \<br />
wx2.8-headers wx-common libwxgtk2.8-dev libwxgtk2.8-dbg \<br />
libwxbase2.8-dev libwxbase2.8-dbg \<br />
libncurses5-dev \<br />
libcairo2 libcairo2-dev \<br />
libpq-dev \<br />
libreadline6 libreadline6-dev libfreetype6-dev \<br />
libfftw3-3 libfftw3-dev \<br />
libjasper-dev \<br />
libav-tools libavutil-dev ffmpeg2theora \<br />
libffmpegthumbnailer-dev \<br />
libavcodec-dev \<br />
libxmu-dev \<br />
libavformat-dev libswscale-dev \<br />
libglu1-mesa-dev libxmu-dev \<br />
ghostscript</source><br />
<br />
<br />
* See the additional packages bellow and in other sections and install them. Note that some of them are [http://grass.osgeo.org/grass70/source/REQUIREMENTS.html required], namely PROJ.4, GEOS and GDAL. If you don't have special requirements, it is usually enough just to install PROJ.4, GEOS and GDAL from repository (rather then compile them manually).<br />
<br />
* for mysql support, <source lang="bash" enclose="none">libmysqlclient-dev</source> is required<br />
<source lang="bash"><br />
sudo apt-get install libmysqlclient-dev<br />
</source><br />
<br />
* for netcdf support, <source lang="bash" enclose="none">netcdf-bin</source> and <source lang="bash" enclose="none">libnetcdf-dev</source> is required<br />
<source lang="bash"><br />
sudo apt-get install netcdf-bin libnetcdf-dev<br />
</source><br />
<br />
* for {{AddonCmd|i.spec.unmix}} Addon support, install LAPACK and BLAS:<br />
<source lang="bash"><br />
sudo apt-get install libatlas-dev libblas-dev liblapack-dev<br />
</source><br />
<br />
* create a directory as a simple user where all source code is going to be stored -- in this example, a directory named <source lang="bash" enclose="none">src</source> under <source lang="bash" enclose="none">/usr/local</source> is created <source lang="bash"><br />
sudo mkdir /usr/local/src<br />
</source><br />
<br />
* take over directories ownerships ('''replace''' below the terms ''userid'' and ''groupid'' with a real <source lang="bash" enclose="none">userid</source>): <source lang="bash"><br />
sudo chown userid:groupid /usr/local/src</source><br />
<br />
* similarly, grant <source lang="bash" enclose="none">rwx</source> (read-write-execute) permissions for our ''userid'' and ''groupid'' onto the <source lang="bash" enclose="none">src</source> directory: <source lang="bash"><br />
sudo chmod ug+rwx /usr/local/src</source><br />
<br />
=== Earlier Ubuntu versions ===<br />
<br />
For [http://old-releases.ubuntu.com/releases/ earlier Ubuntu versions], '''watch out for dependency differences!''' Modify the dependency list given above as instructed below.<br />
<br />
* for [http://releases.ubuntu.com/raring/ Ubuntu Raring Ringtail (13.04]), change the following dependencies:<br />
** <source lang="bash" enclose="none">libav-tools libavutil-dev --> ffmpeg</source> <br />
** <source lang="bash" enclose="none"> --> lesstif2-dev</source><br />
<br />
* for [http://releases.ubuntu.com/precise/ Ubuntu Precise Pangolin (12.04)], change the following dependencies:<br />
** <source lang="bash" enclose="none">libpnglite-dev --> libpngwriter-dev</source><br />
** <source lang="bash" enclose="none">libtiff5-dev --> libtiff4-dev</source><br />
<br />
* for [http://old-releases.ubuntu.com/releases/maverick/ Ubuntu Maverick Meerkat (10.10)] or later, change the following dependencies:<br />
** <source lang="bash" enclose="none">libpngwriter-dev --> libpngwriter0-dev</source><br />
** <source lang="bash" enclose="none">libcairo-dev --> libcairo2-dev</source><br />
** <source lang="bash" enclose="none">fftw3 --> libfftw3-3</source><br />
** <source lang="bash" enclose="none">fftw3-dev --> libfftw3-dev</source><br />
<br />
* for [http://old-releases.ubuntu.com/releases/lucid/ Ubuntu Lucid Lynx (10.04)] or later, also install: <source lang="bash">sudo apt-get install libhdf4-alt-dev libhdf4-0-alt</source><br />
<br />
* for [http://old-releases.ubuntu.com/releases/ earlier Ubuntu versions], also install: <source lang="bash"> sudo apt-get install libhdf4g-dev libhdf4g-run</source><br />
<br />
== Using pre-compiled dev Packages for PROJ.4, GEOS and GDAL ==<br />
<br />
=== PROJ.4 ===<br />
<br />
Install the <source lang="bash" enclose="none">dev</source> package:<br />
<br />
<source lang="bash"><br />
sudo apt-get install libproj-dev proj-data proj-bin<br />
</source><br />
<br />
* In the call to <source lang="bash" enclose="none">./configure</source> for [[#GRASS|GRASS]], replace <source lang="bash" enclose="none">--with-proj-share=/usr/local/share/proj/</source> by <source lang="bash" enclose="none">--with-proj-share=/usr/share/proj/</source><br />
<br />
=== GEOS ===<br />
<br />
Install the <source lang="bash" enclose="none">dev</source> package:<br />
<br />
<source lang="bash"><br />
# probably you also need to additionally install "libgeos-c1v5"<br />
sudo apt-get install libgeos-dev<br />
</source><br />
<br />
* In the call to <source lang="bash" enclose="none">./configure</source> for [[#GRASS|GRASS]], replace <source lang="bash" enclose="none">--with-geos=/usr/local/bin/geos-config</source> by <source lang="bash" enclose="none">--with-geos=/usr/bin/geos-config</source><br />
<br />
=== GDAL ===<br />
<br />
Install the <source lang="bash" enclose="none">dev</source> package (possibly without support for datumgrid):<br />
<br />
<source lang="bash"><br />
sudo apt-get install libgdal-dev<br />
</source><br />
<br />
For support of WMS in wxGUI install Python GDAL bindings and GDAL executables:<br />
<source lang="bash"><br />
sudo apt-get install python-gdal gdal-bin<br />
</source><br />
<br />
* Install also the required extra packages (note the message: <source lang="bash" enclose="none">The following extra packages will be installed:</source>)<br />
* Look out for packages to be removed by this operation -- this is most likely caused by incompatible package versions. Fix these problems in advance using commands like the following: <source lang="bash"><br />
sudo apt-get install <package>=<required.version></source><br />
<br />
=== GRASS-GIS ===<br />
<br />
[[Compile_and_Install_Ubuntu#GRASS_GIS|Jump to sub-section GRASS-GIS below]]<br />
<br />
== Using pre-compiled dev Packages for PROJ.4, GEOS and GDAL from GIS.lab PPA==<br />
<br />
Ivan Mincik has made all required packages available in his [https://launchpad.net/~imincik/+archive/ubuntu/gis PPA]:<br />
<br />
<source lang="bash"><br />
sudo add-apt-repository ppa:imincik/gis<br />
sudo apt-get install libproj-dev libgdal-dev python-gdal libgeos-dev<br />
</source><br />
<br />
Now you can either also install GRASS GIS 7 from there or compile it yourself (see [[Compile_and_Install_Ubuntu#GRASS_GIS|Jump to sub-section GRASS-GIS below]])<br />
<br />
== Compile from source ==<br />
<br />
<br />
=== PROJ4 ===<br />
<br />
* within the directory <source lang="bash" enclose="none">/usr/local/src</source> (create it if it does not exist) checkout <source lang="bash" enclose="none">proj</source> from its Subversion repository: <source lang="bash"><br />
svn co http://svn.osgeo.org/metacrs/proj/branches/4.8/proj/<br />
</source><br />
<br />
* get [http://download.osgeo.org/proj/proj-datumgrid-1.5.zip '''proj-datumgrid-1.5.zip'''] from [http://trac.osgeo.org/proj proj' trac] and move it under <source lang="bash" enclose="none">proj/nad</source><br />
<ul><source lang="bash"><br />
wget http://download.osgeo.org/proj/proj-datumgrid-1.5.zip<br />
mv proj-datumgrid-1.5.zip /usr/local/src/proj/nad<br />
cd /usr/local/src/proj/nad<br />
</source><br />
</ul><br />
<br />
* decompress it <source lang="bash"><br />
unzip proj-datumgrid-1.5.zip<br />
</source><br />
<br />
* go back to the <source lang="bash" enclose="none">proj</source> directory <source lang="bash"><br />
cd /usr/local/src/proj<br />
</source><br />
<br />
* if required, clean previous configuration & compilation <source lang="bash"><br />
make distclean<br />
</source><br />
<br />
* simple configure, compile and install <source lang="bash"><br />
./configure && make && sudo make install<br />
</source><br />
<ul> or <source lang="bash"><br />
./configure && make -j2 && sudo checkinstall<br />
</source><br />
</ul><br />
<br />
* ensure that <source lang="bash" enclose="none">/usr/local/lib</source> is added to <source lang="bash" enclose="none">/etc/ld.so.conf</source> and afterwards run <source lang="bash"><br />
sudo ldconfig<br />
</source><br />
<br />
* finally, go back to the parent directory simply by instructing<source lang="bash"><br />
cd ..<br />
</source><br />
<br />
=== GEOS ===<br />
<br />
* download '''geos-3.4.2.tar.bz2''' from [http://trac.osgeo.org/geos/ http://trac.osgeo.org/geos] using <source lang="bash" enclose="none">wget</source> <source lang="bash"><br />
wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2<br />
</source><br />
<br />
* move to the "source-code" directory and decompress<br />
<ul><source lang="bash"><br />
cd /usr/local/src/<br />
bunzip2 geos-3.4.2.tar.bz2<br />
tar xvf geos-3.4.2.tar<br />
</source><br />
</ul><br />
<br />
* if required, clean previous configuration & compilation <source lang="bash"><br />
make distclean<br />
</source><br />
<br />
* move to geos directory <source lang="bash"><br />
cd geos-3.4.2<br />
</source><br />
<br />
* simple configure, compile and install <source lang="bash"><br />
./configure && make && sudo make install<br />
</source><br />
<ul> or <source lang="bash"><br />
./configure && make -j2 && sudo checkinstall<br />
</source><br />
</ul><br />
<br />
* do not forget to execute <source lang="bash"><br />
sudo ldconfig<br />
</source><br />
<br />
=== GDAL ===<br />
<br />
'''Note''', GDAL must be compiled '''without''' GRASS support<br />
<br />
* download the current stable version <source lang="bash"><br />
svn co https://svn.osgeo.org/gdal/branches/1.11/gdal gdal_stable<br />
</source><br />
<br />
* enter in the <source lang="bash" enclose="none">gdal_stable</source> directory <source lang="bash"><br />
cd /usr/local/src/gdal_stable<br />
</source><br />
<br />
* optionally, update the source code <source lang="bash"><br />
svn up<br />
</source><br />
<br />
* if required, clean previous configurations/compilations <source lang="bash"><br />
make distclean<br />
</source><br />
<br />
* a simple configuration without any parameters will detect and support various installed libraries <source lang="bash"><br />
./configure<br />
</source><br />
<br />
* skip to the ''compile and install'' step or check the following customised configuration example<br />
<ul><br />
<source lang="bash"><br />
CFLAGS="-g -Wall" LDFLAGS="-s" ./configure \<br />
--with-png=internal \<br />
--with-libtiff=internal \<br />
--with-geotiff=internal \<br />
--with-jpeg=internal \<br />
--with-gif=internal \<br />
--with-ecw=no \<br />
--with-expat=yes \<br />
--with-sqlite3=yes \<br />
--with-geos=yes \<br />
--with-python \<br />
--with-libz=internal \<br />
--with-netcdf \<br />
--with-threads=yes \<br />
--without-grass \<br />
--without-ogdi \<br />
--with-pg=/usr/bin/pg_config \<br />
--with-xerces=yes<br />
</source><br />
</ul><br />
<br />
* compile, install & ldconfig <source lang="bash"><br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<ul> or <source lang="bash"><br />
make -j2 && sudo checkinstall && sudo ldconfig<br />
</source><br />
</ul><br />
<br />
=== GRASS GIS ===<br />
<br />
Note the differences between different GRASS version (SVN branches) in download and cofiguration. Note also the changes required if you installed some of the dependencies from packages (rather then compiled them yourself).<br />
<br />
To fully understand the build process, read the <code>INSTALL</code> file, which is located in GRASS' source code root directory. For example, if you have problems related to 32bit versus 64bit, pay attention to section <code>(C)</code>, entitled <code>COMPILATION NOTES for 64bit platforms</code>.<br />
<br />
''' Getting GRASS' source code '''<br />
<br />
Select from one of the GRASS GIS versions and download (using SVN) the source code:<br />
<br />
* VERY OLD STABLE VERSION: current state of the 6.4.x release branch version (stable) <source lang="bash"><br />
svn co https://svn.osgeo.org/grass/grass/branches/releasebranch_6_4 grass64_release<br />
</source><br />
<br />
* STABLE VERSION: current state of the 7.2.x release branch version (current stable) <source lang="bash"><br />
svn co https://svn.osgeo.org/grass/grass/branches/releasebranch_7_2 grass72_release<br />
</source><br />
<br />
* DEVELOPMENT VERSION: current state of the trunk (latest version of code where the development happens) <source lang="bash"><br />
svn co https://svn.osgeo.org/grass/grass/trunk grass7_trunk<br />
</source><br />
<br />
* for other versions see [http://trac.osgeo.org/grass/wiki/DownloadSource GRASS Trac wiki].<br />
<br />
''' Configure, Compile and Install'''<br />
<br />
Enter the directory with the source code (downloaded by svn client), for example:<br />
<br />
<source lang="bash"><br />
cd grass72_release<br />
</source><br />
<br />
* '''GRASS GIS 6 example configuration''' (which can/should be adjusted according to specific needs):<br />
<ul><br />
<source lang="bash"><br />
CFLAGS="-O2 -Wall" LDFLAGS="-s" ./configure \<br />
--enable-largefile=yes \<br />
--with-nls \<br />
--with-cxx \<br />
--with-proj-share=/usr/local/share/proj/ \<br />
--with-geos=/usr/local/bin/geos-config \<br />
--with-readline \<br />
--with-python=yes \<br />
--with-wxwidgets \<br />
--with-cairo \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-motif \<br />
--with-tcltk-includes="/usr/include/tcl8.5" \<br />
--with-ffmpeg=yes --with-ffmpeg-includes="/usr/include/libavcodec /usr/include/libavformat /usr/include/libswscale /usr/include/libavutil" \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--with-sqlite=yes \<br />
--with-mysql=yes --with-mysql-includes="/usr/include/mysql" \<br />
--with-odbc=no<br />
</source><br />
</ul><br />
<ul><br />
'''Note''', the above configuration uses the <code>Proj4</code> and <code>GEOS</code> packages compiled from the source. In the case that pre-compiled versions from the repository are required, remove the above corresponding lines to use the "defaults", i.e. <source lang="bash"><br />
--with-proj-share=/usr/share/proj \<br />
--with-geos=/usr/bin/geos-config \<br />
</source><br />
</ul><br />
<br />
* '''GRASS GIS 7 example configuration''' (which can/should be adjusted according to specific needs):<br />
<ul><br />
<source lang="bash"><br />
CFLAGS="-O2 -Wall" LDFLAGS="-s" ./configure \<br />
--enable-largefile=yes \<br />
--with-nls \<br />
--with-cxx \<br />
--with-readline \<br />
--with-proj-share=/usr/local/share/proj/ \<br />
--with-geos=/usr/local/bin/geos-config \<br />
--with-wxwidgets \<br />
--with-cairo \<br />
--with-opengl-libs=/usr/include/GL \<br />
--with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" \<br />
--with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \<br />
--with-sqlite=yes \<br />
--with-mysql=yes --with-mysql-includes="/usr/include/mysql" \<br />
--with-odbc=no \<br />
--with-liblas=yes --with-liblas-config=/usr/bin/liblas-config<br />
</source><br />
</ul><br />
<ul><br />
'''Note''', the above configuration uses the <code>Proj4</code> and <code>GEOS</code> packages compiled from the source. In the case that pre-compiled versions from the repository are required, remove the above corresponding lines to use the "defaults", i.e. (note the backslashe at the end of each line)<br />
<source lang="bash"><br />
--with-proj-share=/usr/share/proj \<br />
--with-geos=/usr/bin/geos-config \<br />
</source><br />
'''Note 2''', if compiling with liblas, you will want liblas compiled with laszip support. liblas will look for laszip includes in /usr/local/include/laszip by default. Creating the laszip directory in /usr/local/include and making a soft link. ln -s /usr/local/include/lasz*.hpp /usr/local/include/laszip and ln -s /usr/local/include/lasunz*.hpp /usr/local/include/laszip should allow liblas to compile with laszip support <br />
</ul><br />
<br />
* compile & install <source lang="bash"><br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<br />
<ul> or <source lang="bash"><br />
make -j2 && sudo checkinstall && sudo ldconfig<br />
</source><br />
</ul><br />
<br />
For subsequent updates execute (not need for the first time):<br />
<source lang="bash"><br />
svn up<br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<br />
Sometimes, it is required to clean previous configuration and compilation:<br />
<source lang="bash"><br />
make distclean<br />
svn up<br />
./configure ... # (use the configure command above)<br />
make -j2 && sudo make install && sudo ldconfig<br />
</source><br />
<br />
=== GDAL-GRASS-Plugin ===<br />
<br />
* get the plugin from [http://download.osgeo.org/gdal/ OSGeo's Download Server]: "gdal-grass-X.Y.Z.tar.gz" using <source lang="bash" enclose="none">wget</source><br />
<ul><source lang="bash"><br />
# update version number accordingly!<br />
wget http://download.osgeo.org/gdal/3.2.3/gdal-grass-3.2.3.tar.gz<br />
tar xvzf gdal-grass-3.2.3.tar.gz<br />
cd gdal-grass-3.2.3<br />
</source></ul><br />
<br />
* create <source lang="bash" enclose="none">/etc/ld.so.conf.d/grass.conf</source> or add in <source lang="bash" enclose="none">/etc/ld.so.conf</source> the GRASS library path: <br />
<ul><source lang="bash"><br />
# GRASS 7.8 library path (adapt as needed)<br />
/usr/local/src/releasebranch_7_8/lib<br />
<br />
# GRASS 7 (development version) library path (adapt as needed)<br />
/usr/local/src/grass_master/lib<br />
</source></ul><br />
<br />
* optionally, clean previous configurations/compilations<source lang="bash"><br />
make distclean</source><br />
<br />
* configure -- point to GRASS installation/binaries<br />
<ul><source lang="bash"> ./configure \<br />
--prefix=/usr/local \<br />
--with-gdal=/usr/local/bin/gdal-config \<br />
--with-grass=/usr/local/grass-7.8.git/ \<br />
--with-autoload="/usr/local/lib64/gdalplugins/" \<br />
--with-ld-shared="g++ -shared"</source></ul><br />
<ul><br />
* for GRASS 7.6, replace with <source lang="bash" enclose="none"> --with-grass=/usr/local/grass-7.6.3/</source><br />
* for GRASS 7.x...<br />
</ul><br />
<br />
* compile & install using checkinstall<source lang="bash"><br />
make -j2 && sudo checkinstall</source><br />
<br />
= Post compilation/installation control =<br />
<br />
* For a recommended quick-check read the [http://grass.osgeo.org/wiki/Compile_and_install_GRASS_and_QGIS_with_GDAL/OGR_Plugin#Troubleshooting Troubleshooting] section at [http://grass.osgeo.org/wiki/Compile_and_install_GDAL-GRASS_plugin Compile_and_install_GDAL-GRASS_plugin]<br />
<br />
* in case of errors in future compilation attempts, remember to remove program binaries and files created with the "configuration" from previous compilations with<br />
make distclean<br />
<br />
* another common mistake is compiling a module against some GRASS version and then try to run it through another GRASS version. The solution is to recompile the affected module or, in case there are multiple GRASS installations, set up properly LD_LIBRARY_PATH paths.<br />
<br />
<br />
= Removal of GRASS =<br />
<br />
<br />
To get rid of a GRASS binaries installation, delete (update version numbers accordingly)<br />
* <source lang="bash" enclose="none">/usr/local/grass-7.8.1.dev</source> (directory, binaries location)<br />
* <source lang="bash" enclose="none">/usr/local/bin/grass78</source> (file)<br />
* <source lang="bash" enclose="none">/home/username/.grassrc7</source> (file)<br />
<br />
<br />
If wanted, delete also the complete source code:<br />
* <source lang="bash" enclose="none">/usr/local/src/grass78_release</source> (directory, source code location)<br />
<br />
<br />
To remove <code>grass</code> (or any other package) which was installed by <source lang="bash" enclose="none">checkinstall</source>, use <source lang="bash" enclose="none">dpkg</source>, e.g.<source lang="bash"><br />
sudo dpkg -r grass78 # package name defined at installation is important</source><br />
<br />
= Packaging of GRASS =<br />
<br />
* See https://salsa.debian.org/debian-gis-team/grass/tree/master/debian for directions on rolling your own packages.<br />
<br />
For details about the auto-nightly-builds and after-market supplied packages from UbuntuGIS, please refer to the [[Ubuntu Packaging]] wiki page.<br />
<br />
== See also ==<br />
<br />
* Docker: https://grass.osgeo.org/download/software/docker-images/<br />
* [[Ubuntu Packaging]]<br />
* [[GRASS in Debian]]<br />
<br />
= Archived Notes =<br />
<br />
Notes that concern the configuration and compilation of GRASS GIS and its dependencies for older versions of Ubuntu-Linux.<br />
<br />
== Ubuntu 7.10 64-bit ==<br />
<br />
* Compiling latest GRASS source code on a 64-bit machine (with an ATI graphic card) under Ubuntu 7.10 64-bit with support for: 64-bit, SQLite, OpenGL, PYTHON, FFMPEG<br />
(Based on "Ubuntu 6.06 LTS - GRASS 6.1 Compilation Script" by David Finlayson)<br />
''Assuming it is the first time attempting to compile GRASS' source code & installing SVN, PROJ, GDAL/OGR''<br />
<br />
'''Preparation'''<br />
sudo apt-get update && sudo apt-get upgrade<br />
<br />
* install dependencies for compiling (in general) and dependencies for GRASS: PROJ, GDAL/OGR<br />
sudo apt-get install grass build-essential flex bison libncurses5-dev zlib1g-dev \<br />
libgdal1-dev libtiff4-dev libgcc1 libpng12-dev tcl8.4-dev tk8.4-dev fftw3-dev \<br />
libfreetype6-dev libavcodec-dev libxmu-dev gdal-bin libreadline5 libreadline5-dev \<br />
make python-dev python-wxversion<br />
<br />
* install SQLite<br />
sudo apt-get install sqlite3 libsqlite3-dev<br />
<br />
* install SVN<br />
sudo apt-get install subversion<br />
<br />
* create a directory as a simple user where source code(s) are going to be stored (in our example we use a directory called '''src''' under '''/usr/local''')<br />
<br />
sudo mkdir /usr/local/src<br />
<br />
* grant rwx (read-write-execute) permissions for our userid/ groupid on the directory (replace words userid and groupid with real userid):<br />
sudo chown ''userid'':''groupid'' /usr/local/src<br />
<br />
sudo chmod ug+rwx /usr/local/src<br />
<br />
* download latest source code from GRASS SVN repository in a directory on the system (e.g. /usr/local/src)<br />
svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk<br />
<br />
* Above command places GRASS' source code in '''/usr/local/src/grass_trunk'''. In case of a subsequent update use the command: '''svn up''' from within the grass_trunk directory<br />
<br />
----<br />
'''Before''' attempting to compile GRASS, READ section (C) in the '''INSTALL''' file located in the main directory of GRASS source code entitled:<br />
'''(C) COMPILATION NOTES for 64bit platforms'''<br />
----<br />
<br />
* installing FFTW3 if not already on system<br />
sudo apt-get install fftw3 fftw3-dev<br />
<br />
'''FFMPEG'''<br />
<br />
Note: Back in Ubuntu 7.10, installing ffmpeg through the repositories wouldn't work with grass. The following steps were successfully used.<br />
<br />
* install FFMPEG (information taken from: http://stream0.org/2008/01/install-ffmpeg-on-ubuntu-gutsy.html)<br />
* download source code with svn<br />
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg<br />
<br />
* install dependencies<br />
sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev \<br />
liba52-0.7.4 liba52-0.7.4-dev libx264-dev libdts-dev checkinstall \<br />
build-essential subversion<br />
<br />
* guide to ffmpeg directory<br />
cd ffmpeg<br />
<br />
if necessary: '''make distclean''' before configuration (look at notes below)<br />
<br />
* configuration ('''note:''' the configuration parameter "'''--enable-pp'''" does not work anymore)<br />
# configure FFMPEG<br />
./configure --enable-gpl --enable-libvorbis --enable-libtheora \<br />
--enable-liba52 --enable-libdc1394 --enable-libgsm \<br />
--enable-libmp3lame --enable-libfaad --enable-libfaac \<br />
--enable-libxvid --enable-libx264 \<br />
--enable-shared<br />
<br />
* compilation<br />
make<br />
<br />
* installation on /usr/local/bin -- important to remember when configuring GRASS' source code for compilation<br />
sudo checkinstall<br />
<br />
'''Go for GRASS!'''<br />
* in our example we used the /usr/local/src directory to store GRASS' source code, so:<br />
cd /usr/local/src/grass_trunk<br />
<br />
* configuration<br />
CFLAGS="-g -Wall" ./configure --enable-64bit \<br />
--with-libs=/usr/lib64 --with-cxx --with-freetype=yes \<br />
--with-postgres=no --with-sqlite=yes --enable-largefile=yes \<br />
--with-tcltk-includes=/usr/include/tcl8.4 \<br />
--with-freetype-includes=/usr/include/freetype2 \<br />
--with-opengl-libs=/usr/include/GL --with-readline \<br />
--with-python=yes --with-ffmpeg=yes \<br />
--with-ffmpeg-includes=/usr/local/include/ffmpeg<br />
<br />
*if OpenGL fails then maybe it is necessary to link '''glxATI.h''' with '''glx.h''' and re-run the configuration<br />
<br />
cd /usr/include/GL<br />
<br />
sudo ln glxATI.h glx.h<br />
<br />
* compilation<br />
make<br />
<br />
* compilation is expected to end with a statement similar to the following:<br />
<br />
Started compilation: Wed Feb 27 00:24:36 CET 2008<br />
--<br />
Errors in:<br />
No errors detected.<br />
<br />
* installation<br />
sudo checkinstall<br />
<br />
* launch 64-bit GRASS.6.4.svn<br />
grass64<br />
<br />
'''Notes'''<br />
* in case of errors in future compilation attempts, remember to remove program binaries with<br />
make clean<br />
* and the files created with the "configuration" from previous compilations with<br />
make distclean<br />
<br />
== Ubuntu 6.06, 7.10 ==<br />
<br />
* [http://david.p.finlayson.googlepages.com/makegrass.sh makegrass.sh] is script designed to automate most of the download, configuration and compilation of GRASS 6.x-CVS<br />
** it is advised use [https://help.ubuntu.com/community/CheckInstall checkinstall] (''sudo apt-get install checkinstall'') instead of ''make install'' to keep track of installed software <br />
** Think twice before using this script. Some users experienced problems such as disabled XGL etc.<br />
* [[User:Steko/Automated_CVS_compiling|Here]] is another of these scripts, it's homemade so probably you'll find the above more useful for production sites.<br />
<br />
<br />
[[Category: Compilation]]<br />
[[Category: Installation]]<br />
[[Category: Ubuntu]]<br />
[[Category: FAQ]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Vector_Database_Management&diff=27225Vector Database Management2023-10-10T07:37:29Z<p>Neteler: added link to progman</p>
<hr />
<div>''This page is a work in progress.<BR>Please contribute if you have experience with anything that is still poorly documented.''<br />
<br />
''Looking for vector geometry management? See [[:Category:Vector|here]]''<br />
<br />
== GRASS GIS vector management model ==<br />
The GRASS GIS vector management model allows to link map objects to database management systems (DBMS). In this short section, we try to give an overview on how GRASS matches map features and attributes.<br />
<br />
Consider creating a map where you would handle (i) parcels with various crops, (ii) a set of owners for these parcels, and (iii) paths to access them. The latter are determined by limits between contiguous fields.<br />
<br />
One could decide to store data in several distinct maps, e.g.:<br />
* a map "path" containing lines, to describe paths;<br />
* a map "crop" containing areas, to describe crops;<br />
* a map "owner" containing areas, to describe owners.<br />
<br />
We can point several drawbacks to this method:<br />
* we induce redundancy of geometric features between maps "crop" and "owner". Even though their attributes are independent, areas share the same geometry;<br />
* topological relation between paths and parcels limits won't be ensured when it's about to modify the shape of parcels.<br />
<br />
=== The concept of layers ===<br />
<br />
A better solution will resort to the concept of ''layers''. A single vector map will store geometric features, while several tables in the DBMS will handle attribute contents. Figure 1 shows how it works. Let's comment this sketch.<br />
<br />
[[File:Catsnlayers.png|800px|thumb|alt=cats and layers in GRASS GIS|center|Figure 1]]<br />
<br />
This vector map contains ''boundaries'' and ''centroids'', that determine ''areas'' (see {{cmd|vectorintro}}). Boundaries are used as linear features to hold tracks geometry. Each feature is automatically assigned an ''internal identifier'' as soon as it is added to the map. The user cannot edit this ''id'', GRASS GIS handles it for you, and ensures the uniqueness of each ''id''. Here, ''id''s 1 to 12 are assigned to boundaries, ''id''s 13 to 17 correspond to centroids.<br />
<br />
We could consider using this ''key-id'' to directly point at remote attribute records in a table. But GRASS provides a more flexible method, based on the ability :<br />
* to give either a single ''identifier'' to each feature or to group similar features by giving them all a common ''identifier'';<br />
* to give several ''identifiers'' to an object if it is related to multiple thematic data.<br />
These ''identifiers'' are named '''categories''', they are organised in as many sets as you wish, that are named '''layers'''.<br />
<br />
=== The concept of categories ===<br />
<br />
In this example (and above sketch) objects are categorized according to three layers. Boundaries have categories in layer 1, centroids have categories in layers 2 and 3. Note :<br />
* 3 boundaries share category 5 within layer 1;<br />
* among others, object with id 7 has zero category.<br />
<br />
Command {{cmd|v.category}} allows to maintain vector categories.<br />
<br />
Layer 1 connects the map with a table named "paths", "cat" is the key column for this relation. The name of the key column may be different, e.g. "code" for layer 2 and table "plots". Note :<br />
* layer 3 does not refer to any table in the database;<br />
* "code" value 34 within table "plots" has no corresponding category in layer 2;<br />
* category 14 in layer 1 does not refer to any "cat" value in table "paths";<br />
* database contains a table named "owner" which is not related to any layer.<br />
<br />
Database management in GRASS GIS is provided by the db.* set of commands :<br />
* database connections ({{cmd|db.connect}}, {{cmd|db.login}});<br />
* SQL operations ({{cmd|db.select}}, {{cmd|db.execute}}, etc.), while v.db.* set of commands allows to manage linked tables to a vector map:<br />
* layers can be listed/maintained ({{cmd|v.db.connect}});<br />
* some v.db.* commands are simply {{cmd|db.execute}} frontends ({{cmd|v.db.addcol}}, {{cmd|v.db.join}}, etc.).<br />
{{cmd|v.to.db}} is the command that allows to populate a table attached to a given vector layer; not only categories can be uploaded, but geometric data too (area, perimeter, ccordinates, etc.).<br />
<br />
==Vector attribute data processing==<br />
<br />
* See the GRASS {{cmd|vectorintro}} vector data processing help page.<br />
* See also the GRASS {{cmd|databaseintro}} Database management help page.<br />
* See also the [[Openoffice.org with SQL Databases]] wiki page<br />
<br />
===Database Support===<br />
<br />
Since GRASS GIS 7.x, SQLite is the default (local) DB driver used for GRASS vector attribute management. <br />
<br />
==== SQLite ==== <br />
<br />
SQLite is a local database format, but much more featureful than DBF (see below). It basically combines the power of real SQL databases with the advantage of local data storage (no server needed). A nice tool to directly work in the SQLite database is [https://sqlitebrowser.org/ SQLite Database Browser].<br />
Since GRASS 7, SQLite is the default (local) DB used for the vector attribute management.<br />
<br />
* GRASS {{cmd|grass-sqlite}} SQLite driver help page<br />
* [http://www.sqlite.org SQLite Homepage]<br />
<br />
==== ASCII text (.csv, etc.) ====<br />
<br />
ASCII vector data exchange:<br />
* {{cmd|v.in.ascii}} module help page<br />
* {{cmd|v.out.ascii}} module help page<br />
<br />
If your .csv file contains "quoted" strings containing commas, you can use the [[AddOns#Miscellaneous_Add-ons|csv_dequote.pl]] script to parse them into a less-problematic form ready for import with {{cmd|v.in.ascii}}.<br />
<br />
==== MySQL ==== <br />
* GRASS {{cmd|grass-mysql}} MySQL driver page<br />
* GRASS {{cmd|grass-mesql}} MSQL embedded driver page<br />
* [http://www.mysql.com MySQL Homepage]<br />
<br />
==== PostgreSQL ==== <br />
* GRASS {{cmd|grass-pg}} PostgreSQL driver page<br />
* [http://www.postgresql.org PostgreSQL Homepage]<br />
<br />
==== DBF ====<br />
In GRASS 6, DBF was the default (local) DB used for GRASS vector attributes. It is easy to use but with the simplicity comes limited features. Such limits are 10 chars per column name and no support for SQL calculations in SELECT statements.<br />
<br />
* GRASS {{cmd|grass-dbf}} DBF driver help page<br />
<br />
==== FileMaker Pro ====<br />
<br />
''William Kyngesburye wrote on the grass-user mailing list:''<br />
<br />
I think the key to access FileMaker DBs from GRASS is that the FileMaker ODBC connector is for OSX's iODBC, not UnixODBC.<br />
<br />
GRASS 6 has an iODBC configure option. It's the same --with- odbc-* options, it just tries iodbc if it can't find unixodbc.<br />
<br />
==== Oracle ====<br />
<br />
This has been reported to work. Try ODBC and search the mailing list archive.<br />
The connection is done via OGR.<br />
<br />
==== ODBC ==== <br />
* External DB support via ODBC (e.g. FileMaker Pro)<br />
* unixODBC is required to make it work<br />
* to configure you could use the graphical frontend '''ODBCConfig''' to configure your ODBC connection.<br />
<br />
Example-entry in '''~/.odbc.ini''' for usage of ODBC with PostgreSQL<br />
[dbname]<br />
Description = PostgreSQL database for my project<br />
Driver = postgres<br />
Trace = No<br />
TraceFile =<br />
Database = mydb<br />
Servername = myserver<br />
UserName = myusername<br />
Password = mysecretpasswd<br />
Port = 5432<br />
Protocol = 9.0.3<br />
ReadOnly = No<br />
RowVersioning = No<br />
ShowSystemTables = No<br />
ShowOidColumn = No<br />
FakeOidIndex = No<br />
ConnSettings =<br />
<br />
Additionall you need to define the libraries to use for the different drivers in '''/etc/odbcinst.ini'''.<br />
[postgres]<br />
Description = ODBC for postgres<br />
Driver = /usr/lib/unixODBC/libodbcpsql.so<br />
Setup = /usr/lib/unixODBC/libodbcpsqlS.so<br />
FileUsage = 1<br />
<br />
* GRASS {{cmd|grass-odbc}} ODBC driver page<br />
<br />
=== Concepts and jargon ===<br />
<br />
* [[GRASS 6 Terminology]]<br />
* [http://en.wikipedia.org/wiki/Table_%28database%29 Table]<br />
** Table column<br />
** Table row<br />
** Vector map layer<br />
** Each vector file has a special data field named "cat" (derived originally from "category"), filled with integers, that serves to identify each vector object. The 'cat' field also serves as a "key field" that can link each vector object with a corresponding record in an attributes table of a database (NB: 'cat' values do NOT have to be unique for vector objects, but DO have to be unique in an attributes table, permitting both one-to-one and many-to-one relationships). The attributes table must contain a key field, filled with integers (only integers are permitted to serve as key fields in GRASS), that matches the values in the vector 'cat' field.<br />
** A vector can be linked with more than one attribute table, using LAYERS. By default, every vector file has a '''LAYER 1''' with a 'cat' field, filled with integers to identify each vector object. Additional *LAYERS*, along with their associated 'cat' fields, can be created using v.category. Each '''LAYER''' has its own independent 'cat' field that can be used to link with a separate attributes table.<br />
** For example, a vector file of cities can have *LAYER 1* whose 'cat' field links the vector points with an attributes table of demographic data; it can also have a '''LAYER 2''', with an associated 'cat' field (independent of the 'cat' field of '''LAYER 1'''), linked to a different attributes table of economic data. Values in the 'cat' fields of different LAYERS can be the same or different. The 'cat' values and linked attributes table can be queried independently for each '''LAYER'''. In the example, one can query the cities by population from the demographics attributes table linked with the 'cat' field of '''LAYER 1''', or query the cities by household income from the economic attributes table linked with the same vector points through the 'cat' field of '''LAYER 2'''. _MichaelBarton - 12 Nov 2005_<br />
<br />
===Common tasks===<br />
<br />
Background info find in {{cmd|vectorintro}} Vector data processing in GRASS GIS.<br />
<br />
* Connect a DB ({{cmd|db.connect}}, {{cmd|v.db.connect}})<br />
* Copy a table ({{cmd|db.copy}})<br />
* Copy selected columns from a table<br />
* Create a new table ({{cmd|v.db.addtable}})<br />
* Create a new column ({{cmd|v.db.addcol}})<br />
* Extract data via SQL query ({{cmd|v.extract}}, {{cmd|db.select}})<br />
* Low level access to DB<br />
* The {{cmd|db.execute}} module<br />
* Populate a DB ({{cmd|v.db.update}} etc.)<br />
** The {{cmd|v.to.db}} module<br />
<br />
== More Help ==<br />
<br />
* {{cmd|database}} module help pages<br />
* {{cmd|vector}} module help pages<br />
* GRASS {{cmd|sql}} query help page<br />
* [https://grass.osgeo.org/programming8/vectorlib.html Vectorlib in the GRASS GIS 8 Programmer's Manual]<br />
* [http://grass.osgeo.org/grass57/tutorial/links.html SQL reference links]<br />
* [http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-0.html MySQL reserved words list]<br />
* https://gis.stackexchange.com/questions/61927/what-is-the-difference-between-node-and-vertex-in-gis<br />
<br />
[[Category:Documentation]]<br />
[[Category:Vector]]<br />
[[Category:database]]</div>Netelerhttps://grasswiki.osgeo.org/w/index.php?title=Vector_topology&diff=27224Vector topology2023-10-10T07:36:23Z<p>Neteler: added link to progman</p>
<hr />
<div>== GRASS GIS topology management ==<br />
<br />
=== Topology general characteristics ===<br />
<br />
* geometry and attributes are stored separately (concept: ''don't read both if it is not necessary'' - usually it is not) <br />
* the format is topological (areas build from boundaries) <br />
* currently only 2D topology is supported (also 3D faces but no true 3D topology with kernels)<br />
<br />
Topology is stored for '''native GRASS GIS vector format''' (the default). In case of linked OGR sources (see {{cmd|v.external}} module), only pseudo-topology (boundaries constructed from polygons) is written.<br />
<br />
The following '''topological rules''' apply to the vector data:<br />
<br />
* Boundaries should not cross each other (i.e., boundaries which would cross must be split at their intersection to form distict boundaries). On the contrary, lines can cross each other, e.g. bridges over rivers. <br />
* Lines and boundaries share nodes only if their endpoints are identical. Lines or boundaries can be forced to share a common node by snapping them together. This is particulary important since nodes are not represented in the coor file, but only implicitly as endpoints of lines and boundaries. <br />
* Common area boundaries should appear only once (i.e., should not be double digitized). <br />
* Areas must be explicitly closed. This means that it must be possible to complete each area by following one or more boundaries that are connected by common nodes, and that such tracings result in closed areas. <br />
* It is recommended that area features and linear features be placed in separate layers. However if area features and linear features must appear in one layer, common boundaries should be digitized only once. For example, a boundary that is also a line (e.g., a road which is also a field boundary), should be digitized as a boundary to complete the area(s), and a boundary which is functionally also a line should be labeled as a line by a distinct category number. <br />
<br />
Vector map topology can be cleaned at user level by {{cmd|v.clean}} command.<br />
<br />
* Intro to [[Vector Database Management|vector data model]] (with drawing)<br />
* More user-oriented topology details in the manual at: [https://grass.osgeo.org/grass-stable/manuals/vectorintro.html#vector-model-and-topology Vector model and topology]<br />
* [https://grass.osgeo.org/programming8/vectorlib.html Vectorlib in the GRASS GIS 8 Programmer's Manual]<br />
<br />
== GRASS GIS: pseudo-topology and real topology ==<br />
<br />
'''Q:''' What is the difference between pseudo-topology (v.external`) and real topology?<br />
<br />
'''A:''' The differences are listed in the table below.<br />
<br />
Basically a full topological format knows what 'network' is so that every node is directly related with his degree of connection. Boundary lines dividing areas are simply arcs connected together, there is no need to duplicate any basic geometric feature (vertex or arc), even if it belongs to more than one geometric entity.<br />
<br />
<pre><br />
pseudo-topological * full-topological<br />
-----------------------------------------*-------------------------------------<br />
* <br />
adjacent area boundaries are duplicated * a single boundary can share several <br />
* areas <br />
*<br />
*<br />
</pre><br />
<br />
== Vector data export ==<br />
<br />
The topological GRASS GIS vector data can be written out to common GIS vector formats with <tt>{{cmd|v.out.ogr}}</tt>.<br />
<br />
=== Export of islands ===<br />
<br />
If you want only isles and not regular areas in the SHAPE file, use <tt>{{cmd|v.centroids}} layer=X</tt> with a layer number that is unused, then <tt>{{cmd|v.out.ogr}} layer=X</tt> to write out the islands.<br />
<br />
== Extracts nodes by number of line connections ==<br />
<br />
See: https://gist.github.com/petrasovaa/356b2bf9671b2b6801963f4368d7db0b<br />
<br />
== See also ==<br />
<br />
* [[Vector topology cleaning]]<br />
* Intro to [[Vector Database Management|vector data model]] (with drawing)<br />
* see also [http://grass.osgeo.org/programming8/vectorlib.html#vlibTopoManagement Vector library topology management] background<br />
* [[Vector patching]]<br />
<br />
[[Category:FAQ]]<br />
[[Category:Topology]]<br />
[[Category:Vector]]</div>Neteler