<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ominiverdi</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ominiverdi"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Ominiverdi"/>
	<updated>2026-04-13T10:51:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Talk:TorchGeo_Code_Provenance&amp;diff=135095</id>
		<title>Talk:TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Talk:TorchGeo_Code_Provenance&amp;diff=135095"/>
		<updated>2026-01-09T09:50:03Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note''': AI LLM assistance was employed in the production of this document.&lt;br /&gt;
&lt;br /&gt;
  {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
  |+ LLM Engine contributions by operator&lt;br /&gt;
  |-&lt;br /&gt;
  ! Operator !! Tool !! Model 1 !! Model 2&lt;br /&gt;
  |-&lt;br /&gt;
  | '''omniverdi''' || opencode || claude-opus || devstral2-2512&lt;br /&gt;
  |-&lt;br /&gt;
  | '''darkblueb''' || qwen3-coder || gemma3:12b || ollama local-only&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Talk:TorchGeo_Code_Provenance&amp;diff=135094</id>
		<title>Talk:TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Talk:TorchGeo_Code_Provenance&amp;diff=135094"/>
		<updated>2026-01-09T09:49:29Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  '''Note''': AI LLM assistance was employed in the production of this document.&lt;br /&gt;
&lt;br /&gt;
  {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
  |+ LLM Engine contributions by operator&lt;br /&gt;
  |-&lt;br /&gt;
  ! Operator !! Tool !! Model 1 !! Model 2&lt;br /&gt;
  |-&lt;br /&gt;
  | '''omniverdi''' || opencode || claude-opus || devstral2-2512&lt;br /&gt;
  |-&lt;br /&gt;
  | '''darkblueb''' || qwen3-coder || gemma3:12b || ollama local-only&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Talk:TorchGeo_Code_Provenance&amp;diff=135093</id>
		<title>Talk:TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Talk:TorchGeo_Code_Provenance&amp;diff=135093"/>
		<updated>2026-01-09T09:30:11Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note''': AI LLM assistance was employed in the production of this document. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+ LLM Engine contributions by operator&lt;br /&gt;
|-&lt;br /&gt;
| '''ominverdi''' || opencode || claude-opus || devstral2-2512&lt;br /&gt;
|-&lt;br /&gt;
| '''darkblueb''' || qwen3-coder || gemma3:12b || ollama local-only&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135085</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135085"/>
		<updated>2026-01-08T16:16:56Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* TorchGeo Application Questionnaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.3&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
See the main application questionnaire for additional project details:&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
'''This Code Provenance Review followed the OSGeo Incubation process:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step !! Status !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1. Create Provenance Review Document || Complete || 06 Jan 2026 || Document created from [https://wiki.osgeo.org/wiki/Provenance_Review_Template Provenance Review Template]&lt;br /&gt;
|-&lt;br /&gt;
| 2. Library/Component Review || Complete || 08 Jan 2026 || 18 dependencies reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 3. Code Copyright Review || Complete || 08 Jan 2026 || 557 files reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 4. Submit to Project Mentor || Complete || 08 Jan 2026 || Brian M Hamlin (Mentor)&lt;br /&gt;
|}&lt;br /&gt;
=== Review Summary ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Components in source tree:''' || None (all external dependencies)&lt;br /&gt;
|-&lt;br /&gt;
| '''Problematic licenses:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''License conflicts:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''Files reviewed:''' || 557 Python files&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with headers:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''External code derivations:''' || 2 files (both MIT licensed, properly attributed)&lt;br /&gt;
|-&lt;br /&gt;
| '''Copyright model:''' || Collective (&amp;quot;TorchGeo Contributors&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
=== Outstanding Items ===&lt;br /&gt;
* '''Pending merge:''' [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262] - adds copyright headers to 2 files&lt;br /&gt;
* '''NEEDS PSC INPUT:''' CLA/DCO status confirmation&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
'''The TorchGeo codebase passes the Code Provenance Review''' with no blocking issues identified. The project demonstrates good license hygiene and is ready for OSGeo incubation from a code provenance perspective.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
=== 1. Components in Source Tree ===&lt;br /&gt;
'''Finding:''' '''None'''&lt;br /&gt;
TorchGeo does '''not''' bundle any third-party libraries in its source tree. Unlike projects like GDAL (which includes copies of libtiff, libjpeg, etc.), TorchGeo treats all dependencies as external packages installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt; directory  &lt;br /&gt;
* No &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No embedded library copies&lt;br /&gt;
This is the recommended approach and simplifies license management.&lt;br /&gt;
=== 2. External Dependencies ===&lt;br /&gt;
'''Total required dependencies:''' 18&lt;br /&gt;
'''All licenses are OSI-approved and compatible with MIT.'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License !! Compatible? !! Potentially Problematic?&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF (BSD-style) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND (permissive) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || No&lt;br /&gt;
|}&lt;br /&gt;
=== 3. License Distribution ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! License Type !! Count !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| MIT || 6 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| BSD-3-Clause || 7 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| Apache-2.0 || 4 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| PSF || 1 || Python Software Foundation, BSD-style&lt;br /&gt;
|-&lt;br /&gt;
| HPND || 1 || Historical Permission Notice and Disclaimer, permissive&lt;br /&gt;
|}&lt;br /&gt;
=== 4. Potentially Problematic Licenses ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
* No GPL or LGPL dependencies (no copyleft)&lt;br /&gt;
* No AGPL dependencies&lt;br /&gt;
* No proprietary or non-free dependencies&lt;br /&gt;
* No &amp;quot;viral&amp;quot; license concerns&lt;br /&gt;
=== 5. License Conflicts ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
All dependency licenses are permissive and compatible with each other and with TorchGeo's MIT license. There are no conflicts analogous to GDAL's use of GPL'ed GRASS libraries.&lt;br /&gt;
=== 6. Optional Dependencies ===&lt;br /&gt;
TorchGeo has optional dependencies for the &amp;lt;code&amp;gt;datasets&amp;lt;/code&amp;gt; extra. All use permissive licenses:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License&lt;br /&gt;
|-&lt;br /&gt;
| h5py || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| laspy || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| netcdf4 || MIT&lt;br /&gt;
|-&lt;br /&gt;
| opencv-python || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| pycocotools || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| rioxarray || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| scikit-image || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| scipy || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| xarray || Apache-2.0&lt;br /&gt;
|}&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No library/component issues identified&lt;br /&gt;
* No bundled code in source tree&lt;br /&gt;
* All 18 required dependencies use permissive OSI-approved licenses&lt;br /&gt;
* No GPL/copyleft dependencies&lt;br /&gt;
* No license conflicts&lt;br /&gt;
* Clean dependency model suitable for OSGeo incubation&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135084</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135084"/>
		<updated>2026-01-08T16:16:22Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Document Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.3&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
'''This Code Provenance Review followed the OSGeo Incubation process:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step !! Status !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1. Create Provenance Review Document || Complete || 06 Jan 2026 || Document created from [https://wiki.osgeo.org/wiki/Provenance_Review_Template Provenance Review Template]&lt;br /&gt;
|-&lt;br /&gt;
| 2. Library/Component Review || Complete || 08 Jan 2026 || 18 dependencies reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 3. Code Copyright Review || Complete || 08 Jan 2026 || 557 files reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 4. Submit to Project Mentor || Complete || 08 Jan 2026 || Brian M Hamlin (Mentor)&lt;br /&gt;
|}&lt;br /&gt;
=== Review Summary ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Components in source tree:''' || None (all external dependencies)&lt;br /&gt;
|-&lt;br /&gt;
| '''Problematic licenses:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''License conflicts:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''Files reviewed:''' || 557 Python files&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with headers:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''External code derivations:''' || 2 files (both MIT licensed, properly attributed)&lt;br /&gt;
|-&lt;br /&gt;
| '''Copyright model:''' || Collective (&amp;quot;TorchGeo Contributors&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
=== Outstanding Items ===&lt;br /&gt;
* '''Pending merge:''' [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262] - adds copyright headers to 2 files&lt;br /&gt;
* '''NEEDS PSC INPUT:''' CLA/DCO status confirmation&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
'''The TorchGeo codebase passes the Code Provenance Review''' with no blocking issues identified. The project demonstrates good license hygiene and is ready for OSGeo incubation from a code provenance perspective.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
=== 1. Components in Source Tree ===&lt;br /&gt;
'''Finding:''' '''None'''&lt;br /&gt;
TorchGeo does '''not''' bundle any third-party libraries in its source tree. Unlike projects like GDAL (which includes copies of libtiff, libjpeg, etc.), TorchGeo treats all dependencies as external packages installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt; directory  &lt;br /&gt;
* No &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No embedded library copies&lt;br /&gt;
This is the recommended approach and simplifies license management.&lt;br /&gt;
=== 2. External Dependencies ===&lt;br /&gt;
'''Total required dependencies:''' 18&lt;br /&gt;
'''All licenses are OSI-approved and compatible with MIT.'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License !! Compatible? !! Potentially Problematic?&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF (BSD-style) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND (permissive) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || No&lt;br /&gt;
|}&lt;br /&gt;
=== 3. License Distribution ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! License Type !! Count !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| MIT || 6 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| BSD-3-Clause || 7 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| Apache-2.0 || 4 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| PSF || 1 || Python Software Foundation, BSD-style&lt;br /&gt;
|-&lt;br /&gt;
| HPND || 1 || Historical Permission Notice and Disclaimer, permissive&lt;br /&gt;
|}&lt;br /&gt;
=== 4. Potentially Problematic Licenses ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
* No GPL or LGPL dependencies (no copyleft)&lt;br /&gt;
* No AGPL dependencies&lt;br /&gt;
* No proprietary or non-free dependencies&lt;br /&gt;
* No &amp;quot;viral&amp;quot; license concerns&lt;br /&gt;
=== 5. License Conflicts ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
All dependency licenses are permissive and compatible with each other and with TorchGeo's MIT license. There are no conflicts analogous to GDAL's use of GPL'ed GRASS libraries.&lt;br /&gt;
=== 6. Optional Dependencies ===&lt;br /&gt;
TorchGeo has optional dependencies for the &amp;lt;code&amp;gt;datasets&amp;lt;/code&amp;gt; extra. All use permissive licenses:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License&lt;br /&gt;
|-&lt;br /&gt;
| h5py || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| laspy || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| netcdf4 || MIT&lt;br /&gt;
|-&lt;br /&gt;
| opencv-python || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| pycocotools || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| rioxarray || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| scikit-image || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| scipy || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| xarray || Apache-2.0&lt;br /&gt;
|}&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No library/component issues identified&lt;br /&gt;
* No bundled code in source tree&lt;br /&gt;
* All 18 required dependencies use permissive OSI-approved licenses&lt;br /&gt;
* No GPL/copyleft dependencies&lt;br /&gt;
* No license conflicts&lt;br /&gt;
* Clean dependency model suitable for OSGeo incubation&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135083</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135083"/>
		<updated>2026-01-08T16:16:07Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Frequently Asked Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
'''This Code Provenance Review followed the OSGeo Incubation process:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step !! Status !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1. Create Provenance Review Document || Complete || 06 Jan 2026 || Document created from [https://wiki.osgeo.org/wiki/Provenance_Review_Template Provenance Review Template]&lt;br /&gt;
|-&lt;br /&gt;
| 2. Library/Component Review || Complete || 08 Jan 2026 || 18 dependencies reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 3. Code Copyright Review || Complete || 08 Jan 2026 || 557 files reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 4. Submit to Project Mentor || Complete || 08 Jan 2026 || Brian M Hamlin (Mentor)&lt;br /&gt;
|}&lt;br /&gt;
=== Review Summary ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Components in source tree:''' || None (all external dependencies)&lt;br /&gt;
|-&lt;br /&gt;
| '''Problematic licenses:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''License conflicts:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''Files reviewed:''' || 557 Python files&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with headers:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''External code derivations:''' || 2 files (both MIT licensed, properly attributed)&lt;br /&gt;
|-&lt;br /&gt;
| '''Copyright model:''' || Collective (&amp;quot;TorchGeo Contributors&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
=== Outstanding Items ===&lt;br /&gt;
* '''Pending merge:''' [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262] - adds copyright headers to 2 files&lt;br /&gt;
* '''NEEDS PSC INPUT:''' CLA/DCO status confirmation&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
'''The TorchGeo codebase passes the Code Provenance Review''' with no blocking issues identified. The project demonstrates good license hygiene and is ready for OSGeo incubation from a code provenance perspective.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
=== 1. Components in Source Tree ===&lt;br /&gt;
'''Finding:''' '''None'''&lt;br /&gt;
TorchGeo does '''not''' bundle any third-party libraries in its source tree. Unlike projects like GDAL (which includes copies of libtiff, libjpeg, etc.), TorchGeo treats all dependencies as external packages installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt; directory  &lt;br /&gt;
* No &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No embedded library copies&lt;br /&gt;
This is the recommended approach and simplifies license management.&lt;br /&gt;
=== 2. External Dependencies ===&lt;br /&gt;
'''Total required dependencies:''' 18&lt;br /&gt;
'''All licenses are OSI-approved and compatible with MIT.'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License !! Compatible? !! Potentially Problematic?&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF (BSD-style) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND (permissive) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || No&lt;br /&gt;
|}&lt;br /&gt;
=== 3. License Distribution ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! License Type !! Count !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| MIT || 6 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| BSD-3-Clause || 7 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| Apache-2.0 || 4 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| PSF || 1 || Python Software Foundation, BSD-style&lt;br /&gt;
|-&lt;br /&gt;
| HPND || 1 || Historical Permission Notice and Disclaimer, permissive&lt;br /&gt;
|}&lt;br /&gt;
=== 4. Potentially Problematic Licenses ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
* No GPL or LGPL dependencies (no copyleft)&lt;br /&gt;
* No AGPL dependencies&lt;br /&gt;
* No proprietary or non-free dependencies&lt;br /&gt;
* No &amp;quot;viral&amp;quot; license concerns&lt;br /&gt;
=== 5. License Conflicts ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
All dependency licenses are permissive and compatible with each other and with TorchGeo's MIT license. There are no conflicts analogous to GDAL's use of GPL'ed GRASS libraries.&lt;br /&gt;
=== 6. Optional Dependencies ===&lt;br /&gt;
TorchGeo has optional dependencies for the &amp;lt;code&amp;gt;datasets&amp;lt;/code&amp;gt; extra. All use permissive licenses:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License&lt;br /&gt;
|-&lt;br /&gt;
| h5py || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| laspy || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| netcdf4 || MIT&lt;br /&gt;
|-&lt;br /&gt;
| opencv-python || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| pycocotools || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| rioxarray || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| scikit-image || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| scipy || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| xarray || Apache-2.0&lt;br /&gt;
|}&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No library/component issues identified&lt;br /&gt;
* No bundled code in source tree&lt;br /&gt;
* All 18 required dependencies use permissive OSI-approved licenses&lt;br /&gt;
* No GPL/copyleft dependencies&lt;br /&gt;
* No license conflicts&lt;br /&gt;
* Clean dependency model suitable for OSGeo incubation&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135082</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135082"/>
		<updated>2026-01-08T16:12:17Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
'''This Code Provenance Review followed the OSGeo Incubation process:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step !! Status !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1. Create Provenance Review Document || Complete || 06 Jan 2026 || Document created from [https://wiki.osgeo.org/wiki/Provenance_Review_Template Provenance Review Template]&lt;br /&gt;
|-&lt;br /&gt;
| 2. Library/Component Review || Complete || 08 Jan 2026 || 18 dependencies reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 3. Code Copyright Review || Complete || 08 Jan 2026 || 557 files reviewed, no issues found&lt;br /&gt;
|-&lt;br /&gt;
| 4. Submit to Project Mentor || Complete || 08 Jan 2026 || Brian M Hamlin (Mentor)&lt;br /&gt;
|}&lt;br /&gt;
=== Review Summary ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Components in source tree:''' || None (all external dependencies)&lt;br /&gt;
|-&lt;br /&gt;
| '''Problematic licenses:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''License conflicts:''' || None identified&lt;br /&gt;
|-&lt;br /&gt;
| '''Files reviewed:''' || 557 Python files&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with headers:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''External code derivations:''' || 2 files (both MIT licensed, properly attributed)&lt;br /&gt;
|-&lt;br /&gt;
| '''Copyright model:''' || Collective (&amp;quot;TorchGeo Contributors&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
=== Outstanding Items ===&lt;br /&gt;
* '''Pending merge:''' [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262] - adds copyright headers to 2 files&lt;br /&gt;
* '''NEEDS PSC INPUT:''' CLA/DCO status confirmation&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
'''The TorchGeo codebase passes the Code Provenance Review''' with no blocking issues identified. The project demonstrates good license hygiene and is ready for OSGeo incubation from a code provenance perspective.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
=== 1. Components in Source Tree ===&lt;br /&gt;
'''Finding:''' '''None'''&lt;br /&gt;
TorchGeo does '''not''' bundle any third-party libraries in its source tree. Unlike projects like GDAL (which includes copies of libtiff, libjpeg, etc.), TorchGeo treats all dependencies as external packages installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt; directory  &lt;br /&gt;
* No &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No embedded library copies&lt;br /&gt;
This is the recommended approach and simplifies license management.&lt;br /&gt;
=== 2. External Dependencies ===&lt;br /&gt;
'''Total required dependencies:''' 18&lt;br /&gt;
'''All licenses are OSI-approved and compatible with MIT.'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License !! Compatible? !! Potentially Problematic?&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF (BSD-style) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND (permissive) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || No&lt;br /&gt;
|}&lt;br /&gt;
=== 3. License Distribution ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! License Type !! Count !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| MIT || 6 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| BSD-3-Clause || 7 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| Apache-2.0 || 4 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| PSF || 1 || Python Software Foundation, BSD-style&lt;br /&gt;
|-&lt;br /&gt;
| HPND || 1 || Historical Permission Notice and Disclaimer, permissive&lt;br /&gt;
|}&lt;br /&gt;
=== 4. Potentially Problematic Licenses ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
* No GPL or LGPL dependencies (no copyleft)&lt;br /&gt;
* No AGPL dependencies&lt;br /&gt;
* No proprietary or non-free dependencies&lt;br /&gt;
* No &amp;quot;viral&amp;quot; license concerns&lt;br /&gt;
=== 5. License Conflicts ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
All dependency licenses are permissive and compatible with each other and with TorchGeo's MIT license. There are no conflicts analogous to GDAL's use of GPL'ed GRASS libraries.&lt;br /&gt;
=== 6. Optional Dependencies ===&lt;br /&gt;
TorchGeo has optional dependencies for the &amp;lt;code&amp;gt;datasets&amp;lt;/code&amp;gt; extra. All use permissive licenses:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License&lt;br /&gt;
|-&lt;br /&gt;
| h5py || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| laspy || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| netcdf4 || MIT&lt;br /&gt;
|-&lt;br /&gt;
| opencv-python || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| pycocotools || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| rioxarray || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| scikit-image || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| scipy || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| xarray || Apache-2.0&lt;br /&gt;
|}&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No library/component issues identified&lt;br /&gt;
* No bundled code in source tree&lt;br /&gt;
* All 18 required dependencies use permissive OSI-approved licenses&lt;br /&gt;
* No GPL/copyleft dependencies&lt;br /&gt;
* No license conflicts&lt;br /&gt;
* Clean dependency model suitable for OSGeo incubation&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135081</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135081"/>
		<updated>2026-01-08T16:11:26Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Library/Component Review Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
=== 1. Components in Source Tree ===&lt;br /&gt;
'''Finding:''' '''None'''&lt;br /&gt;
TorchGeo does '''not''' bundle any third-party libraries in its source tree. Unlike projects like GDAL (which includes copies of libtiff, libjpeg, etc.), TorchGeo treats all dependencies as external packages installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt; directory  &lt;br /&gt;
* No &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
* No embedded library copies&lt;br /&gt;
This is the recommended approach and simplifies license management.&lt;br /&gt;
=== 2. External Dependencies ===&lt;br /&gt;
'''Total required dependencies:''' 18&lt;br /&gt;
'''All licenses are OSI-approved and compatible with MIT.'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License !! Compatible? !! Potentially Problematic?&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF (BSD-style) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND (permissive) || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || No&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || No&lt;br /&gt;
|}&lt;br /&gt;
=== 3. License Distribution ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! License Type !! Count !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| MIT || 6 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| BSD-3-Clause || 7 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| Apache-2.0 || 4 || Permissive, fully compatible&lt;br /&gt;
|-&lt;br /&gt;
| PSF || 1 || Python Software Foundation, BSD-style&lt;br /&gt;
|-&lt;br /&gt;
| HPND || 1 || Historical Permission Notice and Disclaimer, permissive&lt;br /&gt;
|}&lt;br /&gt;
=== 4. Potentially Problematic Licenses ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
* No GPL or LGPL dependencies (no copyleft)&lt;br /&gt;
* No AGPL dependencies&lt;br /&gt;
* No proprietary or non-free dependencies&lt;br /&gt;
* No &amp;quot;viral&amp;quot; license concerns&lt;br /&gt;
=== 5. License Conflicts ===&lt;br /&gt;
'''Finding:''' '''None identified'''&lt;br /&gt;
All dependency licenses are permissive and compatible with each other and with TorchGeo's MIT license. There are no conflicts analogous to GDAL's use of GPL'ed GRASS libraries.&lt;br /&gt;
=== 6. Optional Dependencies ===&lt;br /&gt;
TorchGeo has optional dependencies for the &amp;lt;code&amp;gt;datasets&amp;lt;/code&amp;gt; extra. All use permissive licenses:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Package !! License&lt;br /&gt;
|-&lt;br /&gt;
| h5py || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| laspy || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| netcdf4 || MIT&lt;br /&gt;
|-&lt;br /&gt;
| opencv-python || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| pycocotools || BSD-2-Clause&lt;br /&gt;
|-&lt;br /&gt;
| rioxarray || Apache-2.0&lt;br /&gt;
|-&lt;br /&gt;
| scikit-image || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| scipy || BSD-3-Clause&lt;br /&gt;
|-&lt;br /&gt;
| xarray || Apache-2.0&lt;br /&gt;
|}&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No library/component issues identified&lt;br /&gt;
* No bundled code in source tree&lt;br /&gt;
* All 18 required dependencies use permissive OSI-approved licenses&lt;br /&gt;
* No GPL/copyleft dependencies&lt;br /&gt;
* No license conflicts&lt;br /&gt;
* Clean dependency model suitable for OSGeo incubation&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135080</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135080"/>
		<updated>2026-01-08T16:10:39Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Code Copyright Review */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135079</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135079"/>
		<updated>2026-01-08T16:10:17Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Code Copyright Review */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
== Code Copyright Review ==&lt;br /&gt;
'''Review completed:''' 08 Jan 2026&lt;br /&gt;
'''Reviewer:''' Brian M Hamlin (Mentor), with assistance from automated tooling&lt;br /&gt;
'''Scope:''' All 557 Python source files in the TorchGeo repository&lt;br /&gt;
=== 1. License Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Total Python files:''' || 557&lt;br /&gt;
|-&lt;br /&gt;
| '''Files with standard header:''' || 557 (100%)&lt;br /&gt;
|-&lt;br /&gt;
| '''Files missing header:''' || 0 (after [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262])&lt;br /&gt;
|}&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
'''Finding:''' All source files include the standard license header. Two utility scripts (&amp;lt;code&amp;gt;docs/user/metrics/update_timeline.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tests/data/landcoverai/split.py&amp;lt;/code&amp;gt;) were identified as missing headers during this review and fixed via [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262].&lt;br /&gt;
=== 2. License Consistency ===&lt;br /&gt;
'''Finding:''' All files are under the '''MIT License'''. No files use a different or conflicting license.&lt;br /&gt;
* No GPL, LGPL, or copyleft licenses found&lt;br /&gt;
* No Apache-only or BSD-only files found&lt;br /&gt;
* All code consistently uses MIT&lt;br /&gt;
=== 3. Code Origins ===&lt;br /&gt;
Two files contain code derived from external sources. Both are properly attributed and both original sources use MIT License (compatible):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Source !! Source License !! Compatible? !! Attribution in File?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/btc.py&amp;lt;/code&amp;gt; || [https://github.com/blaz-r/BTC-change-detection blaz-r/BTC-change-detection] || MIT || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;torchgeo/models/croma.py&amp;lt;/code&amp;gt; || [https://github.com/antofuller/CROMA antofuller/CROMA] || MIT || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' Both external code sources are MIT licensed, which is fully compatible with TorchGeo's MIT license. Attribution is properly documented in the source file headers.&lt;br /&gt;
=== 4. Vendored/Bundled Code ===&lt;br /&gt;
'''Finding:''' No vendored or bundled third-party code exists in the source tree. All dependencies are external and installed via pip/conda.&lt;br /&gt;
* No &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;third_party/&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;external/&amp;lt;/code&amp;gt; directories&lt;br /&gt;
* No embedded copies of libraries (unlike GDAL which bundles libtiff, libjpeg, etc.)&lt;br /&gt;
* All 18 dependencies are fetched externally at install time&lt;br /&gt;
=== 5. Copyright Holders ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || Collective || Single copyright holder for all files&lt;br /&gt;
|}&lt;br /&gt;
'''Finding:''' The project uses a '''collective copyright model'''. All files use &amp;quot;Copyright (c) TorchGeo Contributors&amp;quot; rather than individual contributor names.&lt;br /&gt;
'''Implications for relicensing:'''&lt;br /&gt;
* Simplified model - no need to contact 122 individual contributors&lt;br /&gt;
* Contributors implicitly agree to collective copyright by submitting PRs&lt;br /&gt;
* '''NEEDS CLARIFICATION:''' Does the project have a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO)?&lt;br /&gt;
=== 6. Outstanding Issues ===&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files: [https://github.com/torchgeo/torchgeo/pull/3262 PR #3262]&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Confirm whether a CLA/DCO is in place or planned&lt;br /&gt;
* '''NEEDS PSC INPUT:''' Contributor agreement status for PSC members (currently all marked TBD)&lt;br /&gt;
=== 7. Conclusion ===&lt;br /&gt;
'''Overall assessment:''' No provenance issues identified&lt;br /&gt;
The TorchGeo codebase demonstrates good copyright hygiene:&lt;br /&gt;
* 100% of source files have proper license headers&lt;br /&gt;
* All code is consistently MIT licensed&lt;br /&gt;
* External code derivations are properly attributed and license-compatible&lt;br /&gt;
* No vendored code complicates the license picture&lt;br /&gt;
* Collective copyright model simplifies governance&lt;br /&gt;
The codebase is ready for OSGeo incubation from a code provenance perspective, pending confirmation of contributor agreement procedures from the PSC.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135078</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135078"/>
		<updated>2026-01-08T16:04:41Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Frequently Asked Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135077</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135077"/>
		<updated>2026-01-08T16:02:54Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Document Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Version:''' || 0.2&lt;br /&gt;
|-&lt;br /&gt;
| '''Status:''' || Updated&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Edited:''' || 08 Jan 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135076</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135076"/>
		<updated>2026-01-08T16:02:40Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Further Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Status:''' init&lt;br /&gt;
&lt;br /&gt;
'''Last Edited:''' 06 Jan 2026&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
'''Resolved:'''&lt;br /&gt;
* Copyright headers added to 2 missing files via PR #3262: https://github.com/torchgeo/torchgeo/pull/3262&lt;br /&gt;
&lt;br /&gt;
'''Pending:'''&lt;br /&gt;
* Contributor agreement status needs confirmation from PSC members&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire ==&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135075</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135075"/>
		<updated>2026-01-08T16:02:12Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Committers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Status:''' init&lt;br /&gt;
&lt;br /&gt;
'''Last Edited:''' 06 Jan 2026&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
'''Total human contributors:''' 122&lt;br /&gt;
&lt;br /&gt;
'''Total commits:''' 2778 (excluding bots)&lt;br /&gt;
&lt;br /&gt;
'''Top contributors''' (PSC members marked with *):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Email !! Affiliation !! Agreement Signed?&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || TUM / UIUC || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaac.corley@proton.me || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nils.lehmann24@gmail.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ashnair0007@gmail.com || Space42 || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Ortiz * || Anthony.Ortiz@microsoft.com || Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' 122 total contributors. Full list available via &amp;lt;code&amp;gt;git shortlog -sne --all&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
''List or reference a list of any outstanding issues not already listed above. Typically link to issues in project's issue tracker.''&lt;br /&gt;
&lt;br /&gt;
Action: Add copyright headers to these 2 files.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Action Items for Brian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. [ ] Add copyright headers to 2 missing files (or confirm they are trivial/auto-generated)&lt;br /&gt;
&lt;br /&gt;
2. [ ] Confirm contributor agreement status for top maintainers&lt;br /&gt;
&lt;br /&gt;
3. [ ] Copy sections above to wiki, adjusting table formatting for MediaWiki syntax&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135074</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135074"/>
		<updated>2026-01-08T16:01:52Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Copyright Holders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Status:''' init&lt;br /&gt;
&lt;br /&gt;
'''Last Edited:''' 06 Jan 2026&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copyright Holder !! Contact !! Issues !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TorchGeo Contributors || N/A (collective) || None || Per LICENSE file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The MIT License file states: &amp;quot;Copyright (c) TorchGeo Contributors.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is a collective copyright model - individual contributors retain copyright but license under MIT.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TorchGeo Repository Statistics&lt;br /&gt;
==============================================================&lt;br /&gt;
commit 6995642a4b03ae03834f599dd58a47a04fc91608&lt;br /&gt;
Author: Isaac Corley &amp;lt;isaac.corley@proton.me&amp;gt;&lt;br /&gt;
Date:   Sat Jan 3 16:40:34 2026 -0600&lt;br /&gt;
&lt;br /&gt;
 -&lt;br /&gt;
commit 2330aad537f09ae93e2fa3283d1c25a3e0230703&lt;br /&gt;
Author: Adam J. Stewart &amp;lt;ajstewart426@gmail.com&amp;gt;&lt;br /&gt;
Date:   Tue May 11 14:46:50 2021 -0500&lt;br /&gt;
&lt;br /&gt;
    Initial commit&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
Total Commits: 3357&lt;br /&gt;
&lt;br /&gt;
Contributors:&lt;br /&gt;
  1068  Adam J. Stewart&lt;br /&gt;
   947  dependabot[bot]&lt;br /&gt;
   217  Caleb Robinson&lt;br /&gt;
   104  Isaac Corley&lt;br /&gt;
   101  Nils Lehmann&lt;br /&gt;
    77  Ashwin Nair&lt;br /&gt;
    30  isaac&lt;br /&gt;
    17  Robin Cole&lt;br /&gt;
    15  Yi Wang&lt;br /&gt;
    12  Yi-Chia Chang&lt;br /&gt;
    10  Burak&lt;br /&gt;
     9  Maciej Kilian&lt;br /&gt;
     6  Blaž Rolih&lt;br /&gt;
     5  Amri Rasyidi,Qiusheng Wu,Ritwik Gupta,Sieger Falkena&lt;br /&gt;
     4  Copilot,Daniele Rege Cambrin,Harald Kristen,gatienc&lt;br /&gt;
     3  Adrian Tofting,George Huber,Hitesh Tolani,Luca Colomba,Pablo Mandiola,Zhuo Zheng&lt;br /&gt;
     2  Blanchon,Buğra,Can Michael Hucko,Data Philosopher,Favyen Bastani,Gaétan Bahl,Janne Mäyrä,Jingtong&lt;br /&gt;
     2  Kaustav Mukherjee,SpontaneousDuck,Wei Ji,Yang Mu,estherrolf,remtav,shreyakannan1205&lt;br /&gt;
     1  Adrian Boguszewski,Al-Ekram Elahee Hridoy,Aleksey Morozov,Alexandre Lacoste,Alhassan Sahad,Arianna Sole&lt;br /&gt;
     1  Bianca Zadrozny,Boe Zhou,Byeong-Hyeok Yu,Codruț Diaconu,Daiki Kimura,David Meaux,Dimitris Mantas&lt;br /&gt;
     1  Dominik K,Dylan Stewart,Ethan White (he/him),Federico Bessi,Forrest Williams,Georgia Manou,Giacomo Caria&lt;br /&gt;
     1  Heng Fang,HeshamHM28,Ikko Eltociear Ashimine,Inderpreet Singh Parmar,JDilger,Jakub,Kaleb Crans,Kamil Raczycki&lt;br /&gt;
     1  Keenan Eves,Kendall Smith,Kiran S,Konrad Heidler,Konstantin Klemmer,Krishnagopal Halder&lt;br /&gt;
     1  Laurențiu Nicola,Leonard Waldmann,Mathias Baumgartinger, Matt Gibson,Mauricio Cordeiro,Mehmet Cem Gunturkun&lt;br /&gt;
     1  MengluTao,Michael Nolde,Michiaki Tatsubori,Nassim AIT ALI BRAHAM,Night-dev,Odd Eirik Igland,Ohad Nir&lt;br /&gt;
     1  Oluwabusayo Jacobs,Piero Toffanin,Piper Wolters,Pitchaporn Likitpanjamanon,Reslan Tinawi,Rijul Dahiya,Rémi Cresson&lt;br /&gt;
     1  Rémi Tavon,Saumya Sinha,Shradha Sehgal,Slawek Bierwiaczonek,Tarandeep Singh,Taylor Denouden,Teo Cherici&lt;br /&gt;
     1  Veronika Buchauer,XShadow,nands,iejMac,kaybe20, lhackel-tub,lns-lns,lucastao,mdchuc,nsutezo,ntw-au,tritolol&lt;br /&gt;
&lt;br /&gt;
File Changes Summary:&lt;br /&gt;
 Added lines: 215314&lt;br /&gt;
Removed lines: 101198&lt;br /&gt;
Total lines changed: 114116&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
''List or reference a list of any outstanding issues not already listed above. Typically link to issues in project's issue tracker.''&lt;br /&gt;
&lt;br /&gt;
Action: Add copyright headers to these 2 files.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Action Items for Brian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. [ ] Add copyright headers to 2 missing files (or confirm they are trivial/auto-generated)&lt;br /&gt;
&lt;br /&gt;
2. [ ] Confirm contributor agreement status for top maintainers&lt;br /&gt;
&lt;br /&gt;
3. [ ] Copy sections above to wiki, adjusting table formatting for MediaWiki syntax&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135073</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135073"/>
		<updated>2026-01-08T16:01:17Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Source Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Status:''' init&lt;br /&gt;
&lt;br /&gt;
'''Last Edited:''' 06 Jan 2026&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
&lt;br /&gt;
Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TorchGeo Repository Statistics&lt;br /&gt;
==============================================================&lt;br /&gt;
commit 6995642a4b03ae03834f599dd58a47a04fc91608&lt;br /&gt;
Author: Isaac Corley &amp;lt;isaac.corley@proton.me&amp;gt;&lt;br /&gt;
Date:   Sat Jan 3 16:40:34 2026 -0600&lt;br /&gt;
&lt;br /&gt;
 -&lt;br /&gt;
commit 2330aad537f09ae93e2fa3283d1c25a3e0230703&lt;br /&gt;
Author: Adam J. Stewart &amp;lt;ajstewart426@gmail.com&amp;gt;&lt;br /&gt;
Date:   Tue May 11 14:46:50 2021 -0500&lt;br /&gt;
&lt;br /&gt;
    Initial commit&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
Total Commits: 3357&lt;br /&gt;
&lt;br /&gt;
Contributors:&lt;br /&gt;
  1068  Adam J. Stewart&lt;br /&gt;
   947  dependabot[bot]&lt;br /&gt;
   217  Caleb Robinson&lt;br /&gt;
   104  Isaac Corley&lt;br /&gt;
   101  Nils Lehmann&lt;br /&gt;
    77  Ashwin Nair&lt;br /&gt;
    30  isaac&lt;br /&gt;
    17  Robin Cole&lt;br /&gt;
    15  Yi Wang&lt;br /&gt;
    12  Yi-Chia Chang&lt;br /&gt;
    10  Burak&lt;br /&gt;
     9  Maciej Kilian&lt;br /&gt;
     6  Blaž Rolih&lt;br /&gt;
     5  Amri Rasyidi,Qiusheng Wu,Ritwik Gupta,Sieger Falkena&lt;br /&gt;
     4  Copilot,Daniele Rege Cambrin,Harald Kristen,gatienc&lt;br /&gt;
     3  Adrian Tofting,George Huber,Hitesh Tolani,Luca Colomba,Pablo Mandiola,Zhuo Zheng&lt;br /&gt;
     2  Blanchon,Buğra,Can Michael Hucko,Data Philosopher,Favyen Bastani,Gaétan Bahl,Janne Mäyrä,Jingtong&lt;br /&gt;
     2  Kaustav Mukherjee,SpontaneousDuck,Wei Ji,Yang Mu,estherrolf,remtav,shreyakannan1205&lt;br /&gt;
     1  Adrian Boguszewski,Al-Ekram Elahee Hridoy,Aleksey Morozov,Alexandre Lacoste,Alhassan Sahad,Arianna Sole&lt;br /&gt;
     1  Bianca Zadrozny,Boe Zhou,Byeong-Hyeok Yu,Codruț Diaconu,Daiki Kimura,David Meaux,Dimitris Mantas&lt;br /&gt;
     1  Dominik K,Dylan Stewart,Ethan White (he/him),Federico Bessi,Forrest Williams,Georgia Manou,Giacomo Caria&lt;br /&gt;
     1  Heng Fang,HeshamHM28,Ikko Eltociear Ashimine,Inderpreet Singh Parmar,JDilger,Jakub,Kaleb Crans,Kamil Raczycki&lt;br /&gt;
     1  Keenan Eves,Kendall Smith,Kiran S,Konrad Heidler,Konstantin Klemmer,Krishnagopal Halder&lt;br /&gt;
     1  Laurențiu Nicola,Leonard Waldmann,Mathias Baumgartinger, Matt Gibson,Mauricio Cordeiro,Mehmet Cem Gunturkun&lt;br /&gt;
     1  MengluTao,Michael Nolde,Michiaki Tatsubori,Nassim AIT ALI BRAHAM,Night-dev,Odd Eirik Igland,Ohad Nir&lt;br /&gt;
     1  Oluwabusayo Jacobs,Piero Toffanin,Piper Wolters,Pitchaporn Likitpanjamanon,Reslan Tinawi,Rijul Dahiya,Rémi Cresson&lt;br /&gt;
     1  Rémi Tavon,Saumya Sinha,Shradha Sehgal,Slawek Bierwiaczonek,Tarandeep Singh,Taylor Denouden,Teo Cherici&lt;br /&gt;
     1  Veronika Buchauer,XShadow,nands,iejMac,kaybe20, lhackel-tub,lns-lns,lucastao,mdchuc,nsutezo,ntw-au,tritolol&lt;br /&gt;
&lt;br /&gt;
File Changes Summary:&lt;br /&gt;
 Added lines: 215314&lt;br /&gt;
Removed lines: 101198&lt;br /&gt;
Total lines changed: 114116&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
'''Total Python files:''' 557&lt;br /&gt;
&lt;br /&gt;
'''Files with copyright header:''' 557 (100%) - ''after PR #3262 merged''&lt;br /&gt;
&lt;br /&gt;
'''Standard header format:'''&lt;br /&gt;
 # Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
 # Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! License !! Copyright Holder !! Header? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| docs/user/metrics/update_timeline.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|-&lt;br /&gt;
| tests/data/landcoverai/split.py || MIT || TorchGeo Contributors || Yes || None || Yes || Fixed in PR #3262&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' PR https://github.com/torchgeo/torchgeo/pull/3262 adds copyright headers to the 2 files that were missing them.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
''List or reference a list of any outstanding issues not already listed above. Typically link to issues in project's issue tracker.''&lt;br /&gt;
&lt;br /&gt;
Action: Add copyright headers to these 2 files.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Action Items for Brian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. [ ] Add copyright headers to 2 missing files (or confirm they are trivial/auto-generated)&lt;br /&gt;
&lt;br /&gt;
2. [ ] Confirm contributor agreement status for top maintainers&lt;br /&gt;
&lt;br /&gt;
3. [ ] Copy sections above to wiki, adjusting table formatting for MediaWiki syntax&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135072</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135072"/>
		<updated>2026-01-08T16:00:29Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Committers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Status:''' init&lt;br /&gt;
&lt;br /&gt;
'''Last Edited:''' 06 Jan 2026&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
&lt;br /&gt;
Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TorchGeo Repository Statistics&lt;br /&gt;
==============================================================&lt;br /&gt;
commit 6995642a4b03ae03834f599dd58a47a04fc91608&lt;br /&gt;
Author: Isaac Corley &amp;lt;isaac.corley@proton.me&amp;gt;&lt;br /&gt;
Date:   Sat Jan 3 16:40:34 2026 -0600&lt;br /&gt;
&lt;br /&gt;
 -&lt;br /&gt;
commit 2330aad537f09ae93e2fa3283d1c25a3e0230703&lt;br /&gt;
Author: Adam J. Stewart &amp;lt;ajstewart426@gmail.com&amp;gt;&lt;br /&gt;
Date:   Tue May 11 14:46:50 2021 -0500&lt;br /&gt;
&lt;br /&gt;
    Initial commit&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
Total Commits: 3357&lt;br /&gt;
&lt;br /&gt;
Contributors:&lt;br /&gt;
  1068  Adam J. Stewart&lt;br /&gt;
   947  dependabot[bot]&lt;br /&gt;
   217  Caleb Robinson&lt;br /&gt;
   104  Isaac Corley&lt;br /&gt;
   101  Nils Lehmann&lt;br /&gt;
    77  Ashwin Nair&lt;br /&gt;
    30  isaac&lt;br /&gt;
    17  Robin Cole&lt;br /&gt;
    15  Yi Wang&lt;br /&gt;
    12  Yi-Chia Chang&lt;br /&gt;
    10  Burak&lt;br /&gt;
     9  Maciej Kilian&lt;br /&gt;
     6  Blaž Rolih&lt;br /&gt;
     5  Amri Rasyidi,Qiusheng Wu,Ritwik Gupta,Sieger Falkena&lt;br /&gt;
     4  Copilot,Daniele Rege Cambrin,Harald Kristen,gatienc&lt;br /&gt;
     3  Adrian Tofting,George Huber,Hitesh Tolani,Luca Colomba,Pablo Mandiola,Zhuo Zheng&lt;br /&gt;
     2  Blanchon,Buğra,Can Michael Hucko,Data Philosopher,Favyen Bastani,Gaétan Bahl,Janne Mäyrä,Jingtong&lt;br /&gt;
     2  Kaustav Mukherjee,SpontaneousDuck,Wei Ji,Yang Mu,estherrolf,remtav,shreyakannan1205&lt;br /&gt;
     1  Adrian Boguszewski,Al-Ekram Elahee Hridoy,Aleksey Morozov,Alexandre Lacoste,Alhassan Sahad,Arianna Sole&lt;br /&gt;
     1  Bianca Zadrozny,Boe Zhou,Byeong-Hyeok Yu,Codruț Diaconu,Daiki Kimura,David Meaux,Dimitris Mantas&lt;br /&gt;
     1  Dominik K,Dylan Stewart,Ethan White (he/him),Federico Bessi,Forrest Williams,Georgia Manou,Giacomo Caria&lt;br /&gt;
     1  Heng Fang,HeshamHM28,Ikko Eltociear Ashimine,Inderpreet Singh Parmar,JDilger,Jakub,Kaleb Crans,Kamil Raczycki&lt;br /&gt;
     1  Keenan Eves,Kendall Smith,Kiran S,Konrad Heidler,Konstantin Klemmer,Krishnagopal Halder&lt;br /&gt;
     1  Laurențiu Nicola,Leonard Waldmann,Mathias Baumgartinger, Matt Gibson,Mauricio Cordeiro,Mehmet Cem Gunturkun&lt;br /&gt;
     1  MengluTao,Michael Nolde,Michiaki Tatsubori,Nassim AIT ALI BRAHAM,Night-dev,Odd Eirik Igland,Ohad Nir&lt;br /&gt;
     1  Oluwabusayo Jacobs,Piero Toffanin,Piper Wolters,Pitchaporn Likitpanjamanon,Reslan Tinawi,Rijul Dahiya,Rémi Cresson&lt;br /&gt;
     1  Rémi Tavon,Saumya Sinha,Shradha Sehgal,Slawek Bierwiaczonek,Tarandeep Singh,Taylor Denouden,Teo Cherici&lt;br /&gt;
     1  Veronika Buchauer,XShadow,nands,iejMac,kaybe20, lhackel-tub,lns-lns,lucastao,mdchuc,nsutezo,ntw-au,tritolol&lt;br /&gt;
&lt;br /&gt;
File Changes Summary:&lt;br /&gt;
 Added lines: 215314&lt;br /&gt;
Removed lines: 101198&lt;br /&gt;
Total lines changed: 114116&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
&lt;br /&gt;
currently, 2 of 557 python files lack a copyright line&lt;br /&gt;
&lt;br /&gt;
./docs/user/metrics/update_timeline.py  ;  ./tests/data/landcoverai/split.py&lt;br /&gt;
&lt;br /&gt;
  $ `find . -name &amp;quot;*.py&amp;quot; -exec grep -li &amp;quot;Copyright&amp;quot; {} \;`&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  File !! Licence !! Copyright Holder !! Licenced? !! Issue(s)? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| File || Licence || &amp;lt;org/person&amp;gt; || yes|| n/a || yes || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Primarily in Python : 593 dot-py files in 1283 directories&lt;br /&gt;
&lt;br /&gt;
Most Changed Files:&lt;br /&gt;
   2769 &lt;br /&gt;
    435 requirements/required.txt&lt;br /&gt;
    206 .github/workflows/tests.yaml&lt;br /&gt;
    179 requirements/style.txt&lt;br /&gt;
    166 torchgeo/datasets/__init__.py&lt;br /&gt;
    156 setup.cfg&lt;br /&gt;
    156 pyproject.toml&lt;br /&gt;
    140 requirements/datasets.txt&lt;br /&gt;
    137 docs/api/datasets.rst&lt;br /&gt;
    136 torchgeo/datasets/geo.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Committer !! Username !! Affiliation !! Contribution Agrement Signed? !! Ok?&lt;br /&gt;
|-&lt;br /&gt;
| Name || Username || Company || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Standard header format:&lt;br /&gt;
&lt;br /&gt;
# Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
# Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
''List or reference a list of any outstanding issues not already listed above. Typically link to issues in project's issue tracker.''&lt;br /&gt;
&lt;br /&gt;
Action: Add copyright headers to these 2 files.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Action Items for Brian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. [ ] Add copyright headers to 2 missing files (or confirm they are trivial/auto-generated)&lt;br /&gt;
&lt;br /&gt;
2. [ ] Confirm contributor agreement status for top maintainers&lt;br /&gt;
&lt;br /&gt;
3. [ ] Copy sections above to wiki, adjusting table formatting for MediaWiki syntax&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135071</id>
		<title>TorchGeo Code Provenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=TorchGeo_Code_Provenance&amp;diff=135071"/>
		<updated>2026-01-08T15:58:47Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code Provenance Review Process=&lt;br /&gt;
&lt;br /&gt;
TorchGeo project &lt;br /&gt;
'''refer : https://www.osgeo.org/about/committees/incubation/graduation/'''&lt;br /&gt;
&lt;br /&gt;
==Document Status==&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Status:''' init&lt;br /&gt;
&lt;br /&gt;
'''Last Edited:''' 06 Jan 2026&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
&lt;br /&gt;
Show to &amp;quot;reasonable comfort level&amp;quot; that TorchGeo &lt;br /&gt;
does not have improperly contributed code, and that the code is all under the Project license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice: ''It is not the goal to be able to prove that every source file, and every contribution to those files, was contributed properly. The onus is not on the OSGeo Incubation Committee to prove there are no problems. However, OSGeo Incubation Committee does need to ensure that OSGeo does not officially endorse code with provenance issues that could have identified and corrected with a reasonable effort.''&lt;br /&gt;
&lt;br /&gt;
=TorchGeo Provenance Review=&lt;br /&gt;
&lt;br /&gt;
== Project History ==&lt;br /&gt;
&lt;br /&gt;
TorchGeo started as an internship project at Microsoft's AI for Good Lab in 2021, with continued support and funding from the University of Illinois Urbana-Champaign and the National Center for Supercomputing Applications. Since then, TorchGeo has been adopted by a diverse community of researchers from academia, industry, and government research institutions who have contributed to the success of the library. In 2025, we founded a new TorchGeo Organization to manage the TorchGeo Project, with the support of members from the above organizations.&lt;br /&gt;
&lt;br /&gt;
Key milestones:&lt;br /&gt;
&lt;br /&gt;
- 2021-05-11: Initial commit (2330aad) by Adam J. Stewart&lt;br /&gt;
&lt;br /&gt;
- 2021-2024: Organic growth to 120+ contributors&lt;br /&gt;
&lt;br /&gt;
- 2025: Formation of TorchGeo Organization with formal governance structure&lt;br /&gt;
&lt;br /&gt;
- 2026: OSGeo incubation application submitted&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
All dependencies are external (not bundled in source tree). All licenses are OSI-approved and compatible with MIT.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library !! License !! Compatible? !! In Core? !! Issues? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| einops || MIT || Yes || External || - || Yes || Tensor operations&lt;br /&gt;
|-&lt;br /&gt;
| geopandas || BSD-3-Clause || Yes || External || - || Yes || Geospatial dataframes&lt;br /&gt;
|-&lt;br /&gt;
| jsonargparse || MIT || Yes || External || - || Yes || CLI argument parsing&lt;br /&gt;
|-&lt;br /&gt;
| kornia || Apache-2.0 || Yes || External || - || Yes || Computer vision ops&lt;br /&gt;
|-&lt;br /&gt;
| lightly || MIT || Yes || External || - || Yes || Self-supervised learning&lt;br /&gt;
|-&lt;br /&gt;
| lightning || Apache-2.0 || Yes || External || - || Yes || Training framework&lt;br /&gt;
|-&lt;br /&gt;
| matplotlib || PSF || Yes || External || - || Yes || Plotting&lt;br /&gt;
|-&lt;br /&gt;
| numpy || BSD-3-Clause || Yes || External || - || Yes || Numerical computing&lt;br /&gt;
|-&lt;br /&gt;
| pandas || BSD-3-Clause || Yes || External || - || Yes || Data manipulation&lt;br /&gt;
|-&lt;br /&gt;
| pillow || HPND || Yes || External || - || Yes || Image I/O&lt;br /&gt;
|-&lt;br /&gt;
| pyproj || MIT || Yes || External || - || Yes || Cartographic projections&lt;br /&gt;
|-&lt;br /&gt;
| rasterio || BSD-3-Clause || Yes || External || - || Yes || Geospatial raster I/O&lt;br /&gt;
|-&lt;br /&gt;
| segmentation-models-pytorch || MIT || Yes || External || - || Yes || Segmentation architectures&lt;br /&gt;
|-&lt;br /&gt;
| shapely || BSD-3-Clause || Yes || External || - || Yes || Geometric operations&lt;br /&gt;
|-&lt;br /&gt;
| timm || Apache-2.0 || Yes || External || - || Yes || Vision model zoo&lt;br /&gt;
|-&lt;br /&gt;
| torch || BSD-3-Clause || Yes || External || - || Yes || PyTorch core&lt;br /&gt;
|-&lt;br /&gt;
| torchmetrics || Apache-2.0 || Yes || External || - || Yes || Metrics computation&lt;br /&gt;
|-&lt;br /&gt;
| torchvision || BSD-3-Clause || Yes || External || - || Yes || Vision utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Copyright Holders==&lt;br /&gt;
&lt;br /&gt;
Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
== Committers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TorchGeo Repository Statistics&lt;br /&gt;
==============================================================&lt;br /&gt;
commit 6995642a4b03ae03834f599dd58a47a04fc91608&lt;br /&gt;
Author: Isaac Corley &amp;lt;isaac.corley@proton.me&amp;gt;&lt;br /&gt;
Date:   Sat Jan 3 16:40:34 2026 -0600&lt;br /&gt;
&lt;br /&gt;
 -&lt;br /&gt;
commit 2330aad537f09ae93e2fa3283d1c25a3e0230703&lt;br /&gt;
Author: Adam J. Stewart &amp;lt;ajstewart426@gmail.com&amp;gt;&lt;br /&gt;
Date:   Tue May 11 14:46:50 2021 -0500&lt;br /&gt;
&lt;br /&gt;
    Initial commit&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
Total Commits: 3357&lt;br /&gt;
&lt;br /&gt;
Contributors:&lt;br /&gt;
  1068  Adam J. Stewart&lt;br /&gt;
   947  dependabot[bot]&lt;br /&gt;
   217  Caleb Robinson&lt;br /&gt;
   104  Isaac Corley&lt;br /&gt;
   101  Nils Lehmann&lt;br /&gt;
    77  Ashwin Nair&lt;br /&gt;
    30  isaac&lt;br /&gt;
    17  Robin Cole&lt;br /&gt;
    15  Yi Wang&lt;br /&gt;
    12  Yi-Chia Chang&lt;br /&gt;
    10  Burak&lt;br /&gt;
     9  Maciej Kilian&lt;br /&gt;
     6  Blaž Rolih&lt;br /&gt;
     5  Amri Rasyidi,Qiusheng Wu,Ritwik Gupta,Sieger Falkena&lt;br /&gt;
     4  Copilot,Daniele Rege Cambrin,Harald Kristen,gatienc&lt;br /&gt;
     3  Adrian Tofting,George Huber,Hitesh Tolani,Luca Colomba,Pablo Mandiola,Zhuo Zheng&lt;br /&gt;
     2  Blanchon,Buğra,Can Michael Hucko,Data Philosopher,Favyen Bastani,Gaétan Bahl,Janne Mäyrä,Jingtong&lt;br /&gt;
     2  Kaustav Mukherjee,SpontaneousDuck,Wei Ji,Yang Mu,estherrolf,remtav,shreyakannan1205&lt;br /&gt;
     1  Adrian Boguszewski,Al-Ekram Elahee Hridoy,Aleksey Morozov,Alexandre Lacoste,Alhassan Sahad,Arianna Sole&lt;br /&gt;
     1  Bianca Zadrozny,Boe Zhou,Byeong-Hyeok Yu,Codruț Diaconu,Daiki Kimura,David Meaux,Dimitris Mantas&lt;br /&gt;
     1  Dominik K,Dylan Stewart,Ethan White (he/him),Federico Bessi,Forrest Williams,Georgia Manou,Giacomo Caria&lt;br /&gt;
     1  Heng Fang,HeshamHM28,Ikko Eltociear Ashimine,Inderpreet Singh Parmar,JDilger,Jakub,Kaleb Crans,Kamil Raczycki&lt;br /&gt;
     1  Keenan Eves,Kendall Smith,Kiran S,Konrad Heidler,Konstantin Klemmer,Krishnagopal Halder&lt;br /&gt;
     1  Laurențiu Nicola,Leonard Waldmann,Mathias Baumgartinger, Matt Gibson,Mauricio Cordeiro,Mehmet Cem Gunturkun&lt;br /&gt;
     1  MengluTao,Michael Nolde,Michiaki Tatsubori,Nassim AIT ALI BRAHAM,Night-dev,Odd Eirik Igland,Ohad Nir&lt;br /&gt;
     1  Oluwabusayo Jacobs,Piero Toffanin,Piper Wolters,Pitchaporn Likitpanjamanon,Reslan Tinawi,Rijul Dahiya,Rémi Cresson&lt;br /&gt;
     1  Rémi Tavon,Saumya Sinha,Shradha Sehgal,Slawek Bierwiaczonek,Tarandeep Singh,Taylor Denouden,Teo Cherici&lt;br /&gt;
     1  Veronika Buchauer,XShadow,nands,iejMac,kaybe20, lhackel-tub,lns-lns,lucastao,mdchuc,nsutezo,ntw-au,tritolol&lt;br /&gt;
&lt;br /&gt;
File Changes Summary:&lt;br /&gt;
 Added lines: 215314&lt;br /&gt;
Removed lines: 101198&lt;br /&gt;
Total lines changed: 114116&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Source Files==&lt;br /&gt;
&lt;br /&gt;
currently, 2 of 557 python files lack a copyright line&lt;br /&gt;
&lt;br /&gt;
./docs/user/metrics/update_timeline.py  ;  ./tests/data/landcoverai/split.py&lt;br /&gt;
&lt;br /&gt;
  $ `find . -name &amp;quot;*.py&amp;quot; -exec grep -li &amp;quot;Copyright&amp;quot; {} \;`&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  File !! Licence !! Copyright Holder !! Licenced? !! Issue(s)? !! Ok? !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| File || Licence || &amp;lt;org/person&amp;gt; || yes|| n/a || yes || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Primarily in Python : 593 dot-py files in 1283 directories&lt;br /&gt;
&lt;br /&gt;
Most Changed Files:&lt;br /&gt;
   2769 &lt;br /&gt;
    435 requirements/required.txt&lt;br /&gt;
    206 .github/workflows/tests.yaml&lt;br /&gt;
    179 requirements/style.txt&lt;br /&gt;
    166 torchgeo/datasets/__init__.py&lt;br /&gt;
    156 setup.cfg&lt;br /&gt;
    156 pyproject.toml&lt;br /&gt;
    140 requirements/datasets.txt&lt;br /&gt;
    137 docs/api/datasets.rst&lt;br /&gt;
    136 torchgeo/datasets/geo.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Committer !! Username !! Affiliation !! Contribution Agrement Signed? !! Ok?&lt;br /&gt;
|-&lt;br /&gt;
| Name || Username || Company || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Standard header format:&lt;br /&gt;
&lt;br /&gt;
# Copyright (c) TorchGeo Contributors. All rights reserved.&lt;br /&gt;
# Licensed under the MIT License.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Issues ==&lt;br /&gt;
''List or reference a list of any outstanding issues not already listed above. Typically link to issues in project's issue tracker.''&lt;br /&gt;
&lt;br /&gt;
Action: Add copyright headers to these 2 files.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Action Items for Brian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. [ ] Add copyright headers to 2 missing files (or confirm they are trivial/auto-generated)&lt;br /&gt;
&lt;br /&gt;
2. [ ] Confirm contributor agreement status for top maintainers&lt;br /&gt;
&lt;br /&gt;
3. [ ] Copy sections above to wiki, adjusting table formatting for MediaWiki syntax&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TorchGeo Application Questionnaire&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/osgeo/wiki/TorchGeo&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
&lt;br /&gt;
The Code Provenance Review is separated into two sections, each with a slightly different process:&lt;br /&gt;
# Create a Provenance Review Document by copying the [[Provenance Review Template]].&lt;br /&gt;
# Complete the Library/Component Review Process.&lt;br /&gt;
# Complete the Code Copyright Review.&lt;br /&gt;
# Submit the completed Provenance Review Document to the Project Mentor for review.&lt;br /&gt;
&lt;br /&gt;
==Library/Component Review Process==&lt;br /&gt;
&lt;br /&gt;
For the overall project, document potential Library/Component issues by:&lt;br /&gt;
# Listing any external components that are included &amp;quot;in the source tree&amp;quot; for the project. For instance, GDAL includes a copy of libtiff, libjpeg, etc in the source tree. It is necessary to be able to identify things like that in the source tree that are under their own distinct license, and are not explicitly vetted by the project team. If practical, it is desirable to remove these internal components and treat them as external dependencies. If kept internal, notes on the licenses of the components should be documented using the Provenance Review Template.&lt;br /&gt;
# Listing all external dependencies with:&lt;br /&gt;
## Potentially problematic license terms (all non-free libraries, for instance).&lt;br /&gt;
## All libraries with licenses that might conflict (for instance GDAL's use of GPL'ed GRASS libraries in the non-GPL GDAL).&lt;br /&gt;
&lt;br /&gt;
==Code Copyright Review==&lt;br /&gt;
&lt;br /&gt;
For each project source file, perform the following:&lt;br /&gt;
# Does the file include the license information? If not, add it if there there is no ambiguity about whether the standard project license applies. If that is not obvious, make notes in the review document.&lt;br /&gt;
# Is the file under the normal project license? If not, make notes in the review document.&lt;br /&gt;
# Is there anything obviously unusual about the origin of the code? Does this pose any conflicts? Is the issue properly described in the source file? For instance, in GDAL, the gdal/port/cpl_strtod.cpp file is closely derived from external code that was placed in the public domain. cpl_strtod.cpp is placed under the normal GDAL MIT/X license, but detailed notes are kept in the header text on it's origin, the fact that this was public domain and so the fact that it is ok to relicense it. Oddities should be noted in the source file itself and in the review document.&lt;br /&gt;
# Maintain a list of all copyright holders identified in the Provenance Review Document. This list is essentially everyone who would need to agree to relicense the project. It may be desirable to seek copyright assignment to a &amp;quot;project lead&amp;quot;, or to the foundation to reduce the number of copyright holders for the project, although this is not required.&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
;Do we need to ensure there is a copyright and licence headers in every file?&lt;br /&gt;
:Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y). There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs). Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.&lt;br /&gt;
&lt;br /&gt;
;Do I really need to embed the whole license agreement in every file?&lt;br /&gt;
:No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:&lt;br /&gt;
  /*&lt;br /&gt;
   * Copyright (C) 2004-2005  Autodesk, Inc.&lt;br /&gt;
   * &lt;br /&gt;
   * This library is free software; you can redistribute it and/or&lt;br /&gt;
   * modify it under the terms of version 2.1 of the GNU Lesser&lt;br /&gt;
   * General Public License as published by the Free Software Foundation.&lt;br /&gt;
   *  &lt;br /&gt;
   * This library is distributed in the hope that it will be useful,&lt;br /&gt;
   * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
   * Lesser General Public License for more details.&lt;br /&gt;
   * &lt;br /&gt;
   * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
   * License along with this library; if not, write to the Free Software&lt;br /&gt;
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  * COPYRIGHT:    (C) 2001 by the GRASS Development Team&lt;br /&gt;
  *&lt;br /&gt;
  *               This program is free software under the GNU General Public&lt;br /&gt;
  *               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
  *               for details.&lt;br /&gt;
&lt;br /&gt;
;Can I just write a script to check everything?&lt;br /&gt;
:No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomalies. For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.&lt;br /&gt;
&lt;br /&gt;
; But I just did a review similar to this a few months ago, do I really need to do it again?&lt;br /&gt;
: If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review. It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.&lt;br /&gt;
&lt;br /&gt;
;Do I need to track down every contributor and ask for permission to use their code?&lt;br /&gt;
:No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts. If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.&lt;br /&gt;
&lt;br /&gt;
;Some project code was adapted from other sources with ambiguous copyrights, what do I do?&lt;br /&gt;
:First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code. An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release). If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things. Otherwise the issue will need to be discussed in the incubator to assess risk.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for patent problems?&lt;br /&gt;
: No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document. Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.&lt;br /&gt;
&lt;br /&gt;
; Should I be looking for trademark conflicts?&lt;br /&gt;
: Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project. If issues are found they should be noted in the review document.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
(generated by Claud-code and tools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Committer !! Username !! Affiliation !! Agreement&lt;br /&gt;
|-&lt;br /&gt;
| Adam J. Stewart * || ajstewart426@gmail.com || UIUC/Microsoft || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Caleb Robinson * || calebrob6@gmail.com || Microsoft AI for Good || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Isaac Corley * || isaaccorley@users.noreply.github.com || Wherobots || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Nils Lehmann * || nilsleh@users.noreply.github.com || TUM || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Ashwin Nair * || ash1995@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Robin Cole || robmarkcole@gmail.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi Wang || wangyi111@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Yi-Chia Chang || yichiac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Burak || burakekim@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Blaz Rolih || blaz-r@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Maciej Kilian || iejMac@users.noreply.github.com || - || TBD&lt;br /&gt;
|-&lt;br /&gt;
| Qiusheng Wu || giswqs@gmail.com || - || TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Incubation]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=SAC_Service_Status&amp;diff=134950</id>
		<title>SAC Service Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=SAC_Service_Status&amp;diff=134950"/>
		<updated>2025-12-18T07:48:37Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* gallery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Infrastructure of OSGeo System Administration Committee ([[SAC]])&lt;br /&gt;
&lt;br /&gt;
For emergency plans see: [[SAC:Admin and Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Servers at OSL =&lt;br /&gt;
[[OSL | Open Source Labs]] - 6 physical machines that are lxd hosts containing ''x'' virtual machines/containers. 1 is currently shutdown&lt;br /&gt;
&lt;br /&gt;
history:&lt;br /&gt;
* 7 physical machines of which 5 ar lxd hosts containing ''x'' virtual machines/containers.&lt;br /&gt;
* As part of migration of data center 2025)&lt;br /&gt;
** 2 machines: [[SAC_Service_Status#Backup_.28osgeo5.29| backup]], [[SAC_Service_Status#osgeo3|osgeo3]] are historical servers.&lt;br /&gt;
&lt;br /&gt;
== Logging into Physical Machines ==&lt;br /&gt;
&lt;br /&gt;
Currently we do not have physical machines under LDAP control.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All [[SAC#Members|SAC administrators]] have LDAP auth to the OSL Machines. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;To ssh into a server using your LDAP account, you can do the following replacing '''your_osgeo_login''' with your OSGeo login and '''vmname''' with the vm name of the server at OSL.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;del&amp;gt;ssh '''your_osgeo_login'''@'''servername'''.osgeo.osuosl.org&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;When prompted for password, use your OSGeo Login password.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;[[SAC:Primary Administrators]] also have ssh key access in case LDAP is down and that will also apply to the physical machines. Worst case scenario use the information on [[OSL | Open Source Labs]] to file a ticket (SAC members only). Direct connection to virtual machines is by appending it's vm alias to .osgeo.osuosl.org.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging into LXD Hosts ==&lt;br /&gt;
&lt;br /&gt;
[[SAC_Service_Status#osgeo4|osgeo4]], [[SAC_Service_Status#osgeo7|osgeo7]], [[SAC_Service_Status#osgeo8|osgeo8]], and [[SAC_Service_Status#osgeo9|osgeo9]] are all Ubuntu servers running LXD. &lt;br /&gt;
LXD is a management system for LXC containers and QEMU VMS. LXD has a [https://www.youtube.com/channel/UCuP6xPt0WTeZu32CkQPpbvA channel] that covers its features. &lt;br /&gt;
&lt;br /&gt;
To directly access the host, you go thru port 2222&lt;br /&gt;
&lt;br /&gt;
   ssh tech_dev@''server_name''.osgeo.osuosl.org -p 2222&lt;br /&gt;
&lt;br /&gt;
Only [[SAC:Primary Administrators]] have their ssh key installed under that account.  In order to access via KVM of these in event servers do not come up on a reboot, you need to go thru OSU OSL OpenVPN. To get an OpenVPN account, you need to put in a support ticket to support@osuosl.org.  In order to qualify for an OpenVPN account, you need to be an OSGeo SAC administrator. You will also need to install [https://openvpn.net/community-downloads/ OpenVPN client]) to use your OpenVPN account.&lt;br /&gt;
&lt;br /&gt;
Each host on the private KVM side is named https://'''osgeo8'''.osuosl.oob -- where replace '''osgeo8''' with the relevant host. The .oob is the private network, so doesn't work unless you are connected to via OpenVPN.&lt;br /&gt;
&lt;br /&gt;
The browser interface is sometimes clunky, so you might want to use  '''ipmitool''' installable on linux/unix or wsl using relevant package manager. KVM passwords are stored in [https://git.osgeo.org/gitea/sac/password-store SAC password-store].&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your ~/.ssh/config to easily login to osgeo's LXD hosts follows: &lt;br /&gt;
&lt;br /&gt;
    Host osgeo?&lt;br /&gt;
      User tech_dev&lt;br /&gt;
      HostName %h.osgeo.osuosl.org&lt;br /&gt;
      Port 2222&lt;br /&gt;
&lt;br /&gt;
Then you would be able to log into those hosts with commands like:&lt;br /&gt;
&lt;br /&gt;
    ssh osgeo7&lt;br /&gt;
&lt;br /&gt;
== Logging into LXD Containers and VMs ==&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your ~/.ssh/config to easily login to osgeo's LXD hosted containers and vms is the following:&lt;br /&gt;
&lt;br /&gt;
   # This stanza is only needed if you have an IdentityFile configured below.&lt;br /&gt;
   # The IdentityFile from a target host is not automatically applied to the hop host, so we need to make it explicit:&lt;br /&gt;
   Host hop.*.osgeo.org&lt;br /&gt;
     IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
   Host osgeo*-*&lt;br /&gt;
     ProxyCommand ssh hop.$(sed -e &amp;quot;s/-.*//&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;).osgeo.org -W $(sed -e &amp;quot;s/^osgeo[^-*]-//;s/$/.lxd/&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;):%p&lt;br /&gt;
     # this is only needed if you you use different private keys for different servers&lt;br /&gt;
     IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then you'll be able to access a LXC Container or QEMU VM on machine `osgeo9` with:&lt;br /&gt;
&lt;br /&gt;
   ssh yourusername@osgeo9-matrix&lt;br /&gt;
&lt;br /&gt;
And one on machine `osgeo7` with:&lt;br /&gt;
&lt;br /&gt;
   ssh yourusername@osgeo7-download&lt;br /&gt;
&lt;br /&gt;
Note you still need to know where each LXC host is hosted... See successive sections to know what's on which machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting:''' In case of &amp;quot;Permission denied (publickey).&amp;quot; after an update to a modern openSSH version, it might well be that your ssh key (RSH key) is disabled in your client in favour of more modern cyphers.&lt;br /&gt;
&lt;br /&gt;
Ugly workaround: add one line `PubkeyAcceptedKeyTypes ...` in `.ssh/config`, to re-enable RSA keys for now (consider to generate a new key):&lt;br /&gt;
&lt;br /&gt;
  vim .ssh/config&lt;br /&gt;
  ...&lt;br /&gt;
  Host *&lt;br /&gt;
     ...&lt;br /&gt;
     PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
... but better read e.g. [https://dev.to/bowmanjd/upgrade-ssh-client-keys-and-remote-servers-after-fedora-33-s-new-crypto-policy-47ag here]!&lt;br /&gt;
&lt;br /&gt;
== osgeo 8 ==&lt;br /&gt;
Server added April 2021, donated by OpenStreetMap project.&lt;br /&gt;
&lt;br /&gt;
Likely machine: https://web.archive.org/web/20191112203036/https://hardware.openstreetmap.org/servers/stormfly-01.openstreetmap.org/&lt;br /&gt;
&lt;br /&gt;
Intended to provide additional LXD capacity and backup.&lt;br /&gt;
&lt;br /&gt;
[[osgeo8|Configuration Details]]&lt;br /&gt;
&lt;br /&gt;
=== Services running on osgeo8 ===&lt;br /&gt;
&lt;br /&gt;
==== hop ====&lt;br /&gt;
hop.osgeo8.osgeo.org - jump host for accessing containers/vms on osgeo8&lt;br /&gt;
&lt;br /&gt;
==== nginx ====&lt;br /&gt;
http, https Proxy for all containers on osgeo8 and also provides mirror proxy for download.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== centtie-7-pgrouting ====&lt;br /&gt;
Centos 7 running PostgreSQL 15, PostGIS 3.3.2, gcc-4.8.5, cmake 3&lt;br /&gt;
Configured to be a github self-hosted runner for testing centos for pgrouting project&lt;br /&gt;
&lt;br /&gt;
[https://github.com/pgRouting/admin/wiki/CI%3A-Centos-7-GHA-runner Details of Github Action runner setup]&lt;br /&gt;
&lt;br /&gt;
==== download8 ====&lt;br /&gt;
&lt;br /&gt;
Replica of download that is on osgeo7.&lt;br /&gt;
Mirrors download and home folders from osgeo7. &lt;br /&gt;
https://download-cache.osgeo.org&lt;br /&gt;
&lt;br /&gt;
See [[Download Server]]&lt;br /&gt;
&lt;br /&gt;
==== dronie-client ====&lt;br /&gt;
a ci bot for dronie.osgeo.org which is used for git.osgeo.org/gitea ci jobs&lt;br /&gt;
&lt;br /&gt;
==== geoserver-cite ====&lt;br /&gt;
Houses OGC site certification for geoserver https://cite.geoserver.org&lt;br /&gt;
&lt;br /&gt;
==== grass-wiki ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:GrassWiki]]&lt;br /&gt;
&lt;br /&gt;
==== grass ====&lt;br /&gt;
https://grass.osgeo.org upgraded to Bullseye debian 11.&lt;br /&gt;
&lt;br /&gt;
GRASS GIS server&lt;br /&gt;
&lt;br /&gt;
Current DNS name: grass.osgeo.org&lt;br /&gt;
&lt;br /&gt;
Debian 11 Bullseye&lt;br /&gt;
&lt;br /&gt;
Web: Apache + Hugo (generated through cronjob from https://github.com/OSGeo/grass-website/), see https://github.com/OSGeo/grass-addons/tree/grass8/utils/cronjobs_osgeo_lxd&lt;br /&gt;
&lt;br /&gt;
`unattended-upgrades` for automatic installation of security upgrades is installed and running&lt;br /&gt;
&lt;br /&gt;
ssh: reachable via jumphost.&lt;br /&gt;
&lt;br /&gt;
==== meshcentral ====&lt;br /&gt;
https://remote.osgeo.org&lt;br /&gt;
This is a remoting tool currently setup to test livecd vms via a web browser.&lt;br /&gt;
&lt;br /&gt;
4 VMS currently set up on osgeo8 accessible from this. Currently based on livecd 16rc1 snapshots, with wm install script run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pgrouting-dev ====&lt;br /&gt;
For pgrouting development use to do things like pushing docker images on a scheduled basis.&lt;br /&gt;
Perhaps later for demo sites.  WIP.&lt;br /&gt;
&lt;br /&gt;
==== woodie-client-vm ====&lt;br /&gt;
&lt;br /&gt;
Separate agent for woodie-server, this one is a true VM rather than container.&lt;br /&gt;
&lt;br /&gt;
==== woodie-server ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Woodie]]&lt;br /&gt;
&lt;br /&gt;
== osgeo 9 ==&lt;br /&gt;
Server added April 2021, donated by OpenStreetMap project.&lt;br /&gt;
&lt;br /&gt;
Likely machine: https://web.archive.org/web/20191112203042/https://hardware.openstreetmap.org/servers/stormfly-02.openstreetmap.org/&lt;br /&gt;
&lt;br /&gt;
Is an LXD host.  Also Stores lxd images used by other lxd hosts.&lt;br /&gt;
&lt;br /&gt;
[[osgeo9|Configuration Details]]&lt;br /&gt;
&lt;br /&gt;
=== Services running on osgeo9 ===&lt;br /&gt;
==== hop ====&lt;br /&gt;
hop.osgeo9.osgeo.org. For LDAP users allows them to hop thru to get to other containers.&lt;br /&gt;
&lt;br /&gt;
==== Secure (LDAP )  ====&lt;br /&gt;
[https://git.osgeo.org/gitea/sac/osgeo9/wiki/secure-container secure] -- ldap.osgeo.org [[SAC:LDAP]] used for ldap service (a rebuild of old secure.osgeo.osuosl.org) now on Debian 11&lt;br /&gt;
Moved from osgeo7&lt;br /&gt;
&lt;br /&gt;
==== ldap-web ====&lt;br /&gt;
&lt;br /&gt;
Currently housing https://id.osgeo.org/ for LDAP management.&lt;br /&gt;
Deployed via ansible&lt;br /&gt;
Moved from osgeo9&lt;br /&gt;
&lt;br /&gt;
* id.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== jitsi ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:Jitsi]] (for video meetings)&lt;br /&gt;
&lt;br /&gt;
==== nextcloud  ====&lt;br /&gt;
https://nextcloud.osgeo.org&lt;br /&gt;
&lt;br /&gt;
Ubuntu 22.04 LXD/nginx/postgresql 14 container for document sharing similar to dropbox/google drive - nextcloud.lxd - https://nextcloud.osgeo.org [https://git.osgeo.org/gitea/sac/osgeo9/wiki/Nextcloud-container Nextcloud Setup]&lt;br /&gt;
&lt;br /&gt;
home of https://nextcloud.osgeo.org&lt;br /&gt;
This server does not use ssh osgeo-ldap as it was the first container built.  However nextcloud.osgeo.org does authenticate with osgeo ldap.&lt;br /&gt;
&lt;br /&gt;
TODO: add special page for this&lt;br /&gt;
&lt;br /&gt;
==== nginx ====&lt;br /&gt;
nginx (for web proxy of traffic of osgeo9 containers) additional mirror proxy for download.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== adventure (WIP)====&lt;br /&gt;
https://adventure.osgeo.org runs https://github.com/thecodingmachine/workadventure software&lt;br /&gt;
&lt;br /&gt;
==== dronie-client ====&lt;br /&gt;
a ci bot for dronie.osgeo.org which is used for git.osgeo.org/gitea ci jobs&lt;br /&gt;
&lt;br /&gt;
==== limesurvey ====&lt;br /&gt;
Debian 10, PostgreSQL 13, PHP 8 with ldap/ssh. https://limesurvey.osgeo.org &lt;br /&gt;
Setup detailed on [https://git.osgeo.org/gitea/sac/osgeo3/wiki/limesurvey-container limesurvey container]&lt;br /&gt;
&lt;br /&gt;
==== mail ====&lt;br /&gt;
mailman: lists.osgeo.org&lt;br /&gt;
mail.osgeo.org&lt;br /&gt;
tilechache web: tilecache.osgeo.org&lt;br /&gt;
mailserver: postfix&lt;br /&gt;
&lt;br /&gt;
==== matrix ====&lt;br /&gt;
'''Container Name:''' matrix - lxd container with ldap/ssh.&lt;br /&gt;
Hosts [[Matrix]] homeserver ([[SAC:MatrixSynapse]]) and IRC bridges ([[SAC:Heisenbridge]])&lt;br /&gt;
&lt;br /&gt;
https://gitea.osgeo.org/sac/osgeo9/wiki/matrix-container for full detail on how the container is setup&lt;br /&gt;
&lt;br /&gt;
==== pixelfed ====&lt;br /&gt;
&lt;br /&gt;
SHUT OFF (both container and website) cause of lack of interest.  Container is still there.&lt;br /&gt;
[[Pixelfed]] instance reachable on https://photo.osgeo.org to house community photos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== peertube ====&lt;br /&gt;
&lt;br /&gt;
[[Peertube]] instance reachable on https://video.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== pretalx  ====&lt;br /&gt;
Ubuntu 20.04 with OSGeo LDAP and Docker installed.  pretalx software runs in Docker.&lt;br /&gt;
https://talks.osgeo.org - for OSGeo Talk collection and voting See [[Pretalx]]&lt;br /&gt;
&lt;br /&gt;
==== weblate ====&lt;br /&gt;
'''Container Name:''' weblate (for doc translation)&lt;br /&gt;
&lt;br /&gt;
Houses: https://weblate.osgeo.org  (for document translation to different languages)&lt;br /&gt;
&lt;br /&gt;
For further details refer to [[SAC:Weblate]]&lt;br /&gt;
&lt;br /&gt;
==== wordpress ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:Wordpress]]&lt;br /&gt;
&lt;br /&gt;
==== geo-docs container ====&lt;br /&gt;
&lt;br /&gt;
Houses:&lt;br /&gt;
* https://blog.geoserver.org&lt;br /&gt;
* https://geos.osgeo.org&lt;br /&gt;
* https://geotools.org&lt;br /&gt;
* https://geowebcache.osgeo.org&lt;br /&gt;
* https://lastools.osgeo.org&lt;br /&gt;
* https://planet.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wiki ====&lt;br /&gt;
&lt;br /&gt;
See [[OSGeo Wiki]]&lt;br /&gt;
&lt;br /&gt;
==== discourse ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:Discourse]]&lt;br /&gt;
&lt;br /&gt;
==== mail ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hosts: lists.osgeo.org, mail.osgeo.org and a few other services.&lt;br /&gt;
See [[Mail server]] for more details.&lt;br /&gt;
&lt;br /&gt;
== osgeo 7 ==&lt;br /&gt;
&lt;br /&gt;
Server added June 2018. Intended to replace [[SAC_Service_Status#osgeo3|osgeo3]] and old osgeo4 (before reformat).&lt;br /&gt;
See [[Osgeo7]] for configuration details.&lt;br /&gt;
&lt;br /&gt;
[https://git.osgeo.org/gitea/sac/osgeo7/wiki/_pages Container setup of all the osgeo7 servers is located in https://git.osgeo.org/gitea/sac/osgeo7/wiki/_pages] &lt;br /&gt;
&lt;br /&gt;
Running LXD 3 snap based container management -- LXD version 3.17 as of 2019-09-15&lt;br /&gt;
&lt;br /&gt;
=== Accessing osgeo7 containers via ssh ===&lt;br /&gt;
&lt;br /&gt;
Only the download.osgeo.org is directly exposed ssh via port 22.  To access the other containers, you can tunnel thru &lt;br /&gt;
download.osgeo.org -- You need to be in the shell group to be able to access download and the other servers.  If you are not already put in a [https://trac.osgeo.org/osgeo/newticket SAC Ticket Request].  You also need to have your public key registered. To do so edit your profile [https://id.osgeo.org/ldap/edit]  (and put in your public key)&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your own `.ssh/config` file follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Host osgeo7-*&lt;br /&gt;
   ProxyCommand ssh your_osgeo_id@hop.osgeo7.osgeo.org -W $(sed -e &amp;quot;s/^osgeo7-//;s/$/.lxd/&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;):%p&lt;br /&gt;
   IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
With the above in place, you can connect to any container using:&lt;br /&gt;
&lt;br /&gt;
  ssh your_id@osgeo7-&amp;lt;container_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting:''' In case of &amp;quot;Permission denied (publickey).&amp;quot; after an update to a modern openSSH version, it might well be that your ssh key (RSH key) is disabled in your client in favour of more modern cyphers.&lt;br /&gt;
&lt;br /&gt;
Ugly workaround: add one line `PubkeyAcceptedKeyTypes ...` in `.ssh/config`, to re-enable RSA keys for now (consider to generate a new key):&lt;br /&gt;
&lt;br /&gt;
  vim .ssh/config&lt;br /&gt;
  ...&lt;br /&gt;
  Host *&lt;br /&gt;
     ...&lt;br /&gt;
     PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
... but better read e.g. [https://dev.to/bowmanjd/upgrade-ssh-client-keys-and-remote-servers-after-fedora-33-s-new-crypto-policy-47ag here]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services on osgeo7 ===&lt;br /&gt;
&lt;br /&gt;
==== Monitor ====&lt;br /&gt;
&lt;br /&gt;
debian10 lxd container with ldap/ssh. https://monitor.osgeo.org (houses grafana dashboard (for all servers) and prometheus server for &amp;lt;del&amp;gt;[[SAC_Service_Status#osgeo3|osgeo3]]&amp;lt;del&amp;gt; containers and pulls basic container metrics using node exporters pulled via prometheus servers. Requirs ldap to log into the web console.&lt;br /&gt;
&lt;br /&gt;
Configuring servers for monitoring is detailed [https://git.osgeo.org/gitea/sac/prometheus-config Git Prometheus Config]&lt;br /&gt;
&lt;br /&gt;
==== Download ====&lt;br /&gt;
&lt;br /&gt;
See [[Download Server]]&lt;br /&gt;
&lt;br /&gt;
==== dronie-client-osgeo3 ====&lt;br /&gt;
STOPPED See [https://trac.osgeo.org/osgeo/ticket/3415 #3415]&lt;br /&gt;
Its a copy of dronie-client that was on [[SAC_Service_Status#osgeo3|osgeo3]] which has been shutdown&lt;br /&gt;
This is a debian 10 lxd container running docker. Currently has just one running docker osgeo-drone-agent to serve as a client for dronie-server (dronie.osgeo.org running on osgeo7) &lt;br /&gt;
&lt;br /&gt;
==== gallery ====&lt;br /&gt;
Debian 12 (bookworm) container for AI/ML services, media, and experimental applications.&lt;br /&gt;
&lt;br /&gt;
'''Resources:''' 8 vCPUs, 12GB RAM&lt;br /&gt;
'''System services:''' nginx, redis, PostgreSQL 17, turnserver, php-fpm&lt;br /&gt;
&lt;br /&gt;
'''Brian's services (darkblueb):'''&lt;br /&gt;
* GalleryVM media library&lt;br /&gt;
* llamafile experiments&lt;br /&gt;
* photoprism configuration&lt;br /&gt;
&lt;br /&gt;
'''Lorenzo's services (ominiverdi):'''&lt;br /&gt;
* '''matrix-llmagent''' - Matrix chat bot with LLM integration (uses OpenRouter API)&lt;br /&gt;
** GitHub: https://github.com/ominiverdi/matrix-llmagent&lt;br /&gt;
* '''BGE-M3 Embedding Server''' - Semantic search embeddings via llama.cpp&lt;br /&gt;
** Port: 8094 (localhost only), Model: bge-m3-Q8_0.gguf&lt;br /&gt;
* '''osgeo-library''' - PDF figure/table/equation extraction and semantic search&lt;br /&gt;
** GitHub: https://github.com/ominiverdi/osgeo-library&lt;br /&gt;
** CLI command: &amp;lt;code&amp;gt;osgeo-library&amp;lt;/code&amp;gt; (as ominiverdi user)&lt;br /&gt;
* '''osgeo_wiki_bot''' - Automated wiki/WordPress/Planet content sync and processing&lt;br /&gt;
** GitHub: https://github.com/ominiverdi/osgeo_wiki_bot&lt;br /&gt;
** Cron: wiki (6h), WordPress (daily), Planet (4h), chunk processing (hourly)&lt;br /&gt;
&lt;br /&gt;
The embedding model running on osgeo7-gallery is BGE-M3 (bge-m3-Q8_0.gguf), a multilingual model from BAAI supporting 100+ languages. It produces 1024-dimensional vectors and runs via llama-server on port 8094 (localhost only). The Q8_0 quantization keeps it light: 606 MB on disk, ~457 MB RAM, ~12ms per query.&lt;br /&gt;
&lt;br /&gt;
'''Contact:''' darkblueb (Brian Hamlin), ominiverdi (Lorenzo Becchi) or SAC channel&lt;br /&gt;
&lt;br /&gt;
==== live ====&lt;br /&gt;
Home of [http://live.osgeo.org live.osgeo.org] ; &lt;br /&gt;
Running Ubuntu 24.04.3 LTS with OSGeo LDAP SSH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== mapserver ====&lt;br /&gt;
&lt;br /&gt;
See [[MapServer_at_osgeo7]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== nexus (repo.osgeo.org, docker.osgeo.org)  ====&lt;br /&gt;
See [[SAC:Repo]] this is a debian 10 lxd container running docker 19.  &lt;br /&gt;
It currently has one docker container running within it called nexus -- exposed as repo.osgeo.org on nginx.&lt;br /&gt;
&lt;br /&gt;
Also exposed as project dockers for pushing images:  postgis-docker.osgeo.org, geoserver-docker.osgeo.org, geos-docker.osgeo.org, sac-docker.osgeo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== nginx  ====&lt;br /&gt;
Proxy that routes all http/https traffic for the other containers (can be accessed via osgeo7 host lxc or ubuntu@osgeo7-nginx if your key is installed on ubuntu user).&lt;br /&gt;
The nginx container holds the letsencrypt https SSL certs for all the containers and handles the renewal of the letsencrypt certs using certbot renew cronjob.&lt;br /&gt;
Prometheus server to collect all monitoring logs from OSGeo7 &amp;lt;del&amp;gt;(only accessible by [[SAC_Service_Status#osgeo3|osgeo3]]), these get queried via monitor.osgeo.org (running on [[SAC_Service_Status#osgeo3|osgeo3]]) via grafana server.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tracsvn (trac, svn, git) ====&lt;br /&gt;
&lt;br /&gt;
Home of [[Trac]], [[SAC:Git Service|Git]] and [[Subversion]] services.&lt;br /&gt;
&lt;br /&gt;
See [[TracSVN]] for full details.&lt;br /&gt;
&lt;br /&gt;
==== photoprism ====&lt;br /&gt;
Picture gallery. Syncs with https://nextcloud.osgeo.org&lt;br /&gt;
But pictures are shown here https://photoprism.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== old-wiki (stopped) ====&lt;br /&gt;
This used to be housed on [[SAC_Service_Status#osgeo3|osgeo3]], and was moved 2019-09-14 to osgeo7 as old-wiki container.&lt;br /&gt;
wiki.osgeo.org moved back to [[SAC_Service_Status#osgeo3|osgeo3]] on 2020-05-22 and in wiki container. The wiki container is a complete rebuild with files and database restored and upgraded.&lt;br /&gt;
Refer to the [[SAC_Service_Status#osgeo3|osgeo3]] section for more details. &lt;br /&gt;
&lt;br /&gt;
[https://git.osgeo.org/gitea/sac/osgeo7/wiki/old-wiki-container old wiki container] -- used for wiki service (it is an lxd2pc created image of wiki.osgeo.osuosl.org VM that was on [[SAC_Service_Status#osgeo3|osgeo3]])&lt;br /&gt;
&lt;br /&gt;
See [[OSGeo Wiki]]&lt;br /&gt;
&lt;br /&gt;
==== nextcloud-ubuntu (stopped) ====&lt;br /&gt;
Moved to osgeo9&lt;br /&gt;
&lt;br /&gt;
==== dronie-server ====&lt;br /&gt;
&lt;br /&gt;
See [[Dronie]]&lt;br /&gt;
&lt;br /&gt;
==== old-projects (stopped) ====&lt;br /&gt;
-- this is the old projects.osgeo.osuosl.org migrated from osgeo4 as an lxd container, so more or less the same as it was before, with the exception that all the websites are now proxied thru the nginx container.  Websites on it are community-review.foss4g.org and spatialreference.org&lt;br /&gt;
&lt;br /&gt;
To access you need to go thru download.osgeo.org -&amp;gt; old-projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== old-web (stopped) ====&lt;br /&gt;
The old web.osgeo.osuosl.org (was on [[SAC_Service_Status#osgeo3|osgeo3]]) &lt;br /&gt;
&lt;br /&gt;
* mapguide.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== old-webextra ====&lt;br /&gt;
This is a replica of webextra.osgeo.osuosl.org that was hosted on [[SAC_Service_Status#osgeo3|osgeo3]]&lt;br /&gt;
&lt;br /&gt;
Started move on November 29th 2019 and completed December 8th, 2019&lt;br /&gt;
* foss4g.org&lt;br /&gt;
* europe.foss4g.org&lt;br /&gt;
* video.foss4g.org&lt;br /&gt;
* planet.osgeo.org&lt;br /&gt;
* various old foss4g.org years&lt;br /&gt;
* &amp;lt;del&amp;gt;live.osgeo.org&amp;lt;/del&amp;gt; moved to dedicated container&lt;br /&gt;
* journal.osgeo.org (not sure what this is for, should be retired?)&lt;br /&gt;
* &amp;lt;del&amp;gt;vmap0.tiles.osgeo.org&amp;lt;/del&amp;gt; #removed site&lt;br /&gt;
&lt;br /&gt;
Information from webextra on [[SAC_Service_Status#osgeo3|osgeo3]]&lt;br /&gt;
&lt;br /&gt;
** Retired December 8th, 2019 -- and moved to osgeo7 as container old-webextra&lt;br /&gt;
&lt;br /&gt;
* See [[WebExtraVM]] for full details (server: http://webextra.osgeo.osuosl.org)&lt;br /&gt;
* hosts http://planet.osgeo.org, http://mum03.mapserver.org, http://live.osgeo.org&lt;br /&gt;
* http://foss4g.org (main portal) and archive of old sites 2006-2014&lt;br /&gt;
* http://conference.osgeo.org - [[Conference System]] (also: [[SAC:Setup_OCS]])&lt;br /&gt;
* http://journal.osgeo.org / osgeo.org/ojs - [[Journal System]]&lt;br /&gt;
* Redirects for many chapter and other urls handled via /etc/httpd/conf.d/rewrite.conf&lt;br /&gt;
&lt;br /&gt;
==== pycsw ====&lt;br /&gt;
'''Container Name:''' pycsw &lt;br /&gt;
&lt;br /&gt;
* https://demo.pycsw.org&lt;br /&gt;
* '''OGC CSW Reference Implementation and Server demo'''&lt;br /&gt;
* deployment setup at https://github.com/geopython/demo.pycsw.org&lt;br /&gt;
* running hourly teardown/setup cron via docker-compose&lt;br /&gt;
* migrated from [[AdhocVM#Existing_services_hosted_on_the_Ad-hoc_VM:|Adhoc VM]] thanks to [https://trac.osgeo.org/osgeo/ticket/2452 SAC] (May 2020)&lt;br /&gt;
&lt;br /&gt;
=== osgeo7 decommissioned containers ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;del&amp;gt;old-adhoc&amp;lt;/del&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
'''SHUTOFF as of 2022-01-29'''&lt;br /&gt;
&lt;br /&gt;
[[AdhocVM|old-adhoc]] -- this is the old adhoc.osgeo.osuosl.org migrated 2019-05-08 from osgeo4 as an lxd container.  &lt;br /&gt;
Used by osgeo-live for there test docs and by grass for earthquake, and mapserver for demo.&lt;br /&gt;
Note that there is a new live (container that osgeo-live will more to), there is also a mapserver container (which mapserver have started to move their demo to)&lt;br /&gt;
&lt;br /&gt;
To access via ssh you should go thru download.osgeo.org -&amp;gt; old-adhoc.lxd&lt;br /&gt;
It is accessible via https://adhoc.osgeo.org and http://adhoc.osgeo.osuosl.org&lt;br /&gt;
&lt;br /&gt;
* VM used for projects for various adhoc purposes.  Risks to system stability that would be unacceptable on the Projects VM may be ok here. &lt;br /&gt;
* See [[AdhocVM]] for full details, and some notes on services running here.&lt;br /&gt;
* eg http://adhoc.osgeo.osuosl.org/livedvd/docs/en/quickstart/&lt;br /&gt;
&lt;br /&gt;
== osgeo6 ==&lt;br /&gt;
&lt;br /&gt;
See  [[osgeo6]]&lt;br /&gt;
&lt;br /&gt;
== osgeo4 ==&lt;br /&gt;
&lt;br /&gt;
osgeo4 is a real server managed by OSUOSL - can be access via ssh tech_dev@osgeo4.osgeo.osuosl.org -p 2222  (only people with their access keys installed can log in and doesn't allow password access) - password for tech_dev is in the secure container (on osgeo7) / access folder.&lt;br /&gt;
&lt;br /&gt;
In August 2019 the server had new power supply put in and replacement disks.  It was reformatted with Ubuntu 18.04.3 to serve as secondary LXD host to osgeo7&lt;br /&gt;
zfsutils-linux was installed so lxd can use zfs for storage.&lt;br /&gt;
&lt;br /&gt;
=== sshing into osgeo4 containers ===&lt;br /&gt;
Note that all the containers are closed off from direct ssh access except for the hop.osgeo4.osgeo.org.  To access the other containers, you need to hop through hop.&lt;br /&gt;
hop container has port 22 open but requires ssh access so users who’ve been granted rights can hop thru it to other containers using hop.osgeo4.osgeo.org as name.&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your own .ssh/config file follows where your_id could be your osgeo id or a local account on that container&lt;br /&gt;
&lt;br /&gt;
 Host osgeo4-*&lt;br /&gt;
   ProxyCommand ssh your_osgeo_id@hop.osgeo4.osgeo.org -W $(sed -e &amp;quot;s/^osgeo4-//;s/$/.lxd/&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;):%p&lt;br /&gt;
   IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
   User your_id&lt;br /&gt;
&lt;br /&gt;
Then to access say the wordpress-dev container, you'd do the below&lt;br /&gt;
&lt;br /&gt;
 ssh osgeo4-wordpress-dev&lt;br /&gt;
&lt;br /&gt;
=== osgeo4 baremetal features ===&lt;br /&gt;
It's makeup is as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Settings&lt;br /&gt;
|-&lt;br /&gt;
| Disks || 6 1.8 TB drives&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 48 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPUs || 8 Intel(R) Xeon(R) CPU E5540  @ 2.53GHz (8192kb cache)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk -i&lt;br /&gt;
NAME           MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda              8:0    0  1.8T  0 disk  &lt;br /&gt;
|-sda1           8:1    0  953M  0 part  &lt;br /&gt;
| `-md0          9:0    0  952M  0 raid1 /boot&lt;br /&gt;
`-sda2           8:2    0 46.6G  0 part  &lt;br /&gt;
  `-md1          9:1    0 46.5G  0 raid1 &lt;br /&gt;
	|-lvm-root 253:0    0 37.3G  0 lvm   /&lt;br /&gt;
	`-lvm-swap 253:1    0  7.5G  0 lvm   [SWAP]&lt;br /&gt;
sdb              8:16   0  1.8T  0 disk  &lt;br /&gt;
|-sdb1           8:17   0  953M  0 part  &lt;br /&gt;
| `-md0          9:0    0  952M  0 raid1 /boot&lt;br /&gt;
`-sdb2           8:18   0 46.6G  0 part  &lt;br /&gt;
  `-md1          9:1    0 46.5G  0 raid1 &lt;br /&gt;
	|-lvm-root 253:0    0 37.3G  0 lvm   /&lt;br /&gt;
	`-lvm-swap 253:1    0  7.5G  0 lvm   [SWAP]&lt;br /&gt;
sdc              8:32   0  1.8T  0 disk  &lt;br /&gt;
sdd              8:48   0  1.8T  0 disk  &lt;br /&gt;
sde              8:64   0  1.8T  0 disk  &lt;br /&gt;
sdf              8:80   0  1.8T  0 disk &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sdc,sdd,sde,sdf  form a zfs osgeo4_lxd partition (sdc,sdd) mirrors sde,sdf for total lxd capacity of 3.62 TB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nightly backups of osgeo7, and osgeo4 containers are kept here and named &amp;lt;container&amp;gt;-backup and be kept in a stopped state.&lt;br /&gt;
&lt;br /&gt;
=== Services running on osgeo4 ===&lt;br /&gt;
&lt;br /&gt;
==== hop ====&lt;br /&gt;
'''Container Name:''' hop - this is the only container with direct ssh access via ssh hop.osgeo4.osgeo.org. To get to other containers, you need to hop thru this one. Requires ssh key access&lt;br /&gt;
&lt;br /&gt;
==== ansible-dev ====&lt;br /&gt;
'''Container Name:''' ansible-dev, has ansible 2.9.27 installed and all plugins needed to manage OSGeo ansible infrastructure.&lt;br /&gt;
DEPRECATED, use `ansible-dev`&lt;br /&gt;
&lt;br /&gt;
==== ansible-control ====&lt;br /&gt;
'''Container Name:''' ansible-control, can be used to deploy OSGeo ansible infrastructure. Replaces `ansible-dev`&lt;br /&gt;
&lt;br /&gt;
==== osgeo4-nginx ====&lt;br /&gt;
'''Container Name:''' osgeo4-nginx -&amp;gt;&amp;gt; all web traffick from other containers on osgeo4 get proxied thru here&lt;br /&gt;
&lt;br /&gt;
==== old-web-staging  ====&lt;br /&gt;
'''Container Name:''' old-web-staging - used primarily for experimenting with changes to id.osgeo.org (old-web on osgeo7) like testing out OS and software upgrade etc, changes to LDAP forms and registration, before applying to id.osgeo.org. - https://id.staging.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== pretalx-staging ====&lt;br /&gt;
'''Container Name:''' pretalx-staging - used primarily for experimenting with changes to talks.osgeo.org (pretalx on [[SAC_Service_Status#osgeo9|osgeo9]]) like testing out Docker builds and software upgrade etc, before applying to talks.osgeo.org. - https://talks.staging.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wordpress-dev  ====&lt;br /&gt;
'''Container Name:''' wordpress-dev - used primarily for osgeo.org main website development - https://staging.www.osgeo.org, https://dev.www.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wiki-dev  ====&lt;br /&gt;
'''Container Name:''' wiki-dev - used primarily for experimenting with changes to wiki.osgeo.org like testing out OS and software upgrade etc before appying to wiki.osgeo.org. - https://dev.wiki.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wiki-staging  ====&lt;br /&gt;
'''Container Name:''' wiki-staging - used primarily for upgrade changes to wiki.osgeo.org like testing out OS and software upgrade etc before applying to wiki.osgeo.org. - https://staging.wiki.osgeo.org.  The construction of this container is managed by sac ansible-deployment.&lt;br /&gt;
&lt;br /&gt;
==== tracsvn-dev  ====&lt;br /&gt;
'''Container Name:''' tracsvn-dev - This is a 2019-09-05 lxd2pc image of tracsvn.osgeo.osuosl.org (now on osgeo7 as tracsvn) used primarily for experimenting like testing out OS, git and software upgrade etc before appying to production. -- https://dev.git.osgeo.org, https://dev.tracsvn.osgeo.org Has the following sites: https://dev.trac.osgeo.org, https://dev.git.osgeo.org/gitea, https://dev.svn.osgeo.org.&lt;br /&gt;
&lt;br /&gt;
It was upgraded to Debian 11 on 2024-08-21.&lt;br /&gt;
&lt;br /&gt;
==== dronie-client  ====&lt;br /&gt;
'''Container Name:''' dronie-client - This is a debian 10 machine, with OSGeo LDAP authentication and a drone-agent docker running.  To be used with https://dronie.osgeo.org&lt;br /&gt;
&lt;br /&gt;
= Cloud Hosted Servers and other external under SAC Control =&lt;br /&gt;
&lt;br /&gt;
== Future Hosting Plans for Windows / Mac Building ==&lt;br /&gt;
&lt;br /&gt;
[[SAC_Shared_Building_Services|SAC Shared Building Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Atlantic.net ==&lt;br /&gt;
&lt;br /&gt;
* host.postgis.net -p 2222 is an LXD Ubuntu 18.04 16GB RAM/ 6 vCPU, 350GB data, 250GB block storage&lt;br /&gt;
* Currenlty running two lxd containers:&lt;br /&gt;
    debbie: debian 10 postgis.net, planet.postgis.net, debbie.postgis.net (jenkins build bot)  &lt;br /&gt;
    debbie-docker.host.postgis.net - runs docker and serves as a 1.0 agent for dronie.osgeo.org&lt;br /&gt;
&lt;br /&gt;
= QGIS off OSGeo =&lt;br /&gt;
Services on separated machines rented and managed by the QGIS project at hetzner&lt;br /&gt;
&lt;br /&gt;
* website including documentation http://www.qgis.org&lt;br /&gt;
* website building, documentation building, debian/ubuntu nightlies, plugins.qgis.org&lt;br /&gt;
* issues.qgis.org: redmine&lt;br /&gt;
&lt;br /&gt;
= Historical servers (not more in use) =&lt;br /&gt;
&lt;br /&gt;
- [[Telascience Blades (Historical)]]&lt;br /&gt;
&lt;br /&gt;
== web18a.osgeo.osuosl.org ==&lt;br /&gt;
NO LONGER USED - turned off&lt;br /&gt;
'''2019-09-03 Production services www.osgeo.org, 2018.foss4g.org moved to wordpress container on [[osgeo7]]&lt;br /&gt;
Staging services (staging.www.osgeo.org, dev.www.osgeo.org move to wordpress-dev container on [[osgeo4]]&lt;br /&gt;
Grass wordpress is disabled as grass decided to go with another solution, so have grass container on osgeo7'''&lt;br /&gt;
(Cloud hosted server on OSUOSL hardware (not ours) )&lt;br /&gt;
* Debian 9.3 4GB server, host name: web18a.osgeo.osuosl.org require ssh key to log in.&lt;br /&gt;
* Hosts wordpress sites staging.www.osgeo.org,www.osgeo.org, staging.grass.osgeo.org, foss4g2018.osgeo.org&lt;br /&gt;
* Setup details on [https://git.osgeo.org/gitea/osgeo/www_apache_configs/wiki/Web18a-setup Web18a setup]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OSGeo funtoo ==&lt;br /&gt;
&lt;br /&gt;
For lxd experimentation it's an lxd container running other lxd containers and provided by funtoo.org.&lt;br /&gt;
&lt;br /&gt;
OSGeo is paying funtoo via treasurer at osgeo.org.&lt;br /&gt;
&lt;br /&gt;
* [https://git.osgeo.org/gitea/sac/osgeo_funtoo OSGeo Funtoo] osgeo.host.funtoo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* funtoo LXDs currently running:&lt;br /&gt;
** &amp;lt;del&amp;gt;[https://limesurvey.osgeo.org LimeSurvey] -this may be in future migrated to osgeo7 or osgeo3&amp;lt;/del&amp;gt;&lt;br /&gt;
Migrated to [[SAC_Service_Status#osgeo3|osgeo3]]  2020-11-28 -- see [[https://trac.osgeo.org/osgeo/ticket/2362|#2362]]&lt;br /&gt;
&lt;br /&gt;
== osgeo3 ==&lt;br /&gt;
&lt;br /&gt;
osgeo3 physical server refer to [[osgeo3|Configuration Details]] for hardware specs. It was used to run production, but moderately risky things. Refer to [[SAC:Old-osgeo3]] for past history before osgeo3 was rebuilt.&lt;br /&gt;
osgeo3 was a hosted by OSUOSL - No longer accessible &amp;lt;del&amp;gt;can be accessed via ssh tech_dev@osgeo3.osgeo.osuosl.org -p 2222  (only people with their access keys installed can log in and doesn't allow password access) - password for tech_dev is in the secure container (on osgeo7) / access folder.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Backup (osgeo5) ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Backup now runs on dedicated hardware&amp;lt;del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Provides Rsync backups of download.osgeo.org&amp;lt;del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Provides Bacula backups of various VMs.&amp;lt;del&amp;gt;&lt;br /&gt;
* See [[SAC:Backups]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=SAC_Service_Status&amp;diff=134949</id>
		<title>SAC Service Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=SAC_Service_Status&amp;diff=134949"/>
		<updated>2025-12-17T21:36:28Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: /* gallery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Infrastructure of OSGeo System Administration Committee ([[SAC]])&lt;br /&gt;
&lt;br /&gt;
For emergency plans see: [[SAC:Admin and Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Servers at OSL =&lt;br /&gt;
[[OSL | Open Source Labs]] - 6 physical machines that are lxd hosts containing ''x'' virtual machines/containers. 1 is currently shutdown&lt;br /&gt;
&lt;br /&gt;
history:&lt;br /&gt;
* 7 physical machines of which 5 ar lxd hosts containing ''x'' virtual machines/containers.&lt;br /&gt;
* As part of migration of data center 2025)&lt;br /&gt;
** 2 machines: [[SAC_Service_Status#Backup_.28osgeo5.29| backup]], [[SAC_Service_Status#osgeo3|osgeo3]] are historical servers.&lt;br /&gt;
&lt;br /&gt;
== Logging into Physical Machines ==&lt;br /&gt;
&lt;br /&gt;
Currently we do not have physical machines under LDAP control.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All [[SAC#Members|SAC administrators]] have LDAP auth to the OSL Machines. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;To ssh into a server using your LDAP account, you can do the following replacing '''your_osgeo_login''' with your OSGeo login and '''vmname''' with the vm name of the server at OSL.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;del&amp;gt;ssh '''your_osgeo_login'''@'''servername'''.osgeo.osuosl.org&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;When prompted for password, use your OSGeo Login password.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;[[SAC:Primary Administrators]] also have ssh key access in case LDAP is down and that will also apply to the physical machines. Worst case scenario use the information on [[OSL | Open Source Labs]] to file a ticket (SAC members only). Direct connection to virtual machines is by appending it's vm alias to .osgeo.osuosl.org.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging into LXD Hosts ==&lt;br /&gt;
&lt;br /&gt;
[[SAC_Service_Status#osgeo4|osgeo4]], [[SAC_Service_Status#osgeo7|osgeo7]], [[SAC_Service_Status#osgeo8|osgeo8]], and [[SAC_Service_Status#osgeo9|osgeo9]] are all Ubuntu servers running LXD. &lt;br /&gt;
LXD is a management system for LXC containers and QEMU VMS. LXD has a [https://www.youtube.com/channel/UCuP6xPt0WTeZu32CkQPpbvA channel] that covers its features. &lt;br /&gt;
&lt;br /&gt;
To directly access the host, you go thru port 2222&lt;br /&gt;
&lt;br /&gt;
   ssh tech_dev@''server_name''.osgeo.osuosl.org -p 2222&lt;br /&gt;
&lt;br /&gt;
Only [[SAC:Primary Administrators]] have their ssh key installed under that account.  In order to access via KVM of these in event servers do not come up on a reboot, you need to go thru OSU OSL OpenVPN. To get an OpenVPN account, you need to put in a support ticket to support@osuosl.org.  In order to qualify for an OpenVPN account, you need to be an OSGeo SAC administrator. You will also need to install [https://openvpn.net/community-downloads/ OpenVPN client]) to use your OpenVPN account.&lt;br /&gt;
&lt;br /&gt;
Each host on the private KVM side is named https://'''osgeo8'''.osuosl.oob -- where replace '''osgeo8''' with the relevant host. The .oob is the private network, so doesn't work unless you are connected to via OpenVPN.&lt;br /&gt;
&lt;br /&gt;
The browser interface is sometimes clunky, so you might want to use  '''ipmitool''' installable on linux/unix or wsl using relevant package manager. KVM passwords are stored in [https://git.osgeo.org/gitea/sac/password-store SAC password-store].&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your ~/.ssh/config to easily login to osgeo's LXD hosts follows: &lt;br /&gt;
&lt;br /&gt;
    Host osgeo?&lt;br /&gt;
      User tech_dev&lt;br /&gt;
      HostName %h.osgeo.osuosl.org&lt;br /&gt;
      Port 2222&lt;br /&gt;
&lt;br /&gt;
Then you would be able to log into those hosts with commands like:&lt;br /&gt;
&lt;br /&gt;
    ssh osgeo7&lt;br /&gt;
&lt;br /&gt;
== Logging into LXD Containers and VMs ==&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your ~/.ssh/config to easily login to osgeo's LXD hosted containers and vms is the following:&lt;br /&gt;
&lt;br /&gt;
   # This stanza is only needed if you have an IdentityFile configured below.&lt;br /&gt;
   # The IdentityFile from a target host is not automatically applied to the hop host, so we need to make it explicit:&lt;br /&gt;
   Host hop.*.osgeo.org&lt;br /&gt;
     IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
   Host osgeo*-*&lt;br /&gt;
     ProxyCommand ssh hop.$(sed -e &amp;quot;s/-.*//&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;).osgeo.org -W $(sed -e &amp;quot;s/^osgeo[^-*]-//;s/$/.lxd/&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;):%p&lt;br /&gt;
     # this is only needed if you you use different private keys for different servers&lt;br /&gt;
     IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then you'll be able to access a LXC Container or QEMU VM on machine `osgeo9` with:&lt;br /&gt;
&lt;br /&gt;
   ssh yourusername@osgeo9-matrix&lt;br /&gt;
&lt;br /&gt;
And one on machine `osgeo7` with:&lt;br /&gt;
&lt;br /&gt;
   ssh yourusername@osgeo7-download&lt;br /&gt;
&lt;br /&gt;
Note you still need to know where each LXC host is hosted... See successive sections to know what's on which machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting:''' In case of &amp;quot;Permission denied (publickey).&amp;quot; after an update to a modern openSSH version, it might well be that your ssh key (RSH key) is disabled in your client in favour of more modern cyphers.&lt;br /&gt;
&lt;br /&gt;
Ugly workaround: add one line `PubkeyAcceptedKeyTypes ...` in `.ssh/config`, to re-enable RSA keys for now (consider to generate a new key):&lt;br /&gt;
&lt;br /&gt;
  vim .ssh/config&lt;br /&gt;
  ...&lt;br /&gt;
  Host *&lt;br /&gt;
     ...&lt;br /&gt;
     PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
... but better read e.g. [https://dev.to/bowmanjd/upgrade-ssh-client-keys-and-remote-servers-after-fedora-33-s-new-crypto-policy-47ag here]!&lt;br /&gt;
&lt;br /&gt;
== osgeo 8 ==&lt;br /&gt;
Server added April 2021, donated by OpenStreetMap project.&lt;br /&gt;
&lt;br /&gt;
Likely machine: https://web.archive.org/web/20191112203036/https://hardware.openstreetmap.org/servers/stormfly-01.openstreetmap.org/&lt;br /&gt;
&lt;br /&gt;
Intended to provide additional LXD capacity and backup.&lt;br /&gt;
&lt;br /&gt;
[[osgeo8|Configuration Details]]&lt;br /&gt;
&lt;br /&gt;
=== Services running on osgeo8 ===&lt;br /&gt;
&lt;br /&gt;
==== hop ====&lt;br /&gt;
hop.osgeo8.osgeo.org - jump host for accessing containers/vms on osgeo8&lt;br /&gt;
&lt;br /&gt;
==== nginx ====&lt;br /&gt;
http, https Proxy for all containers on osgeo8 and also provides mirror proxy for download.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== centtie-7-pgrouting ====&lt;br /&gt;
Centos 7 running PostgreSQL 15, PostGIS 3.3.2, gcc-4.8.5, cmake 3&lt;br /&gt;
Configured to be a github self-hosted runner for testing centos for pgrouting project&lt;br /&gt;
&lt;br /&gt;
[https://github.com/pgRouting/admin/wiki/CI%3A-Centos-7-GHA-runner Details of Github Action runner setup]&lt;br /&gt;
&lt;br /&gt;
==== download8 ====&lt;br /&gt;
&lt;br /&gt;
Replica of download that is on osgeo7.&lt;br /&gt;
Mirrors download and home folders from osgeo7. &lt;br /&gt;
https://download-cache.osgeo.org&lt;br /&gt;
&lt;br /&gt;
See [[Download Server]]&lt;br /&gt;
&lt;br /&gt;
==== dronie-client ====&lt;br /&gt;
a ci bot for dronie.osgeo.org which is used for git.osgeo.org/gitea ci jobs&lt;br /&gt;
&lt;br /&gt;
==== geoserver-cite ====&lt;br /&gt;
Houses OGC site certification for geoserver https://cite.geoserver.org&lt;br /&gt;
&lt;br /&gt;
==== grass-wiki ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:GrassWiki]]&lt;br /&gt;
&lt;br /&gt;
==== grass ====&lt;br /&gt;
https://grass.osgeo.org upgraded to Bullseye debian 11.&lt;br /&gt;
&lt;br /&gt;
GRASS GIS server&lt;br /&gt;
&lt;br /&gt;
Current DNS name: grass.osgeo.org&lt;br /&gt;
&lt;br /&gt;
Debian 11 Bullseye&lt;br /&gt;
&lt;br /&gt;
Web: Apache + Hugo (generated through cronjob from https://github.com/OSGeo/grass-website/), see https://github.com/OSGeo/grass-addons/tree/grass8/utils/cronjobs_osgeo_lxd&lt;br /&gt;
&lt;br /&gt;
`unattended-upgrades` for automatic installation of security upgrades is installed and running&lt;br /&gt;
&lt;br /&gt;
ssh: reachable via jumphost.&lt;br /&gt;
&lt;br /&gt;
==== meshcentral ====&lt;br /&gt;
https://remote.osgeo.org&lt;br /&gt;
This is a remoting tool currently setup to test livecd vms via a web browser.&lt;br /&gt;
&lt;br /&gt;
4 VMS currently set up on osgeo8 accessible from this. Currently based on livecd 16rc1 snapshots, with wm install script run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pgrouting-dev ====&lt;br /&gt;
For pgrouting development use to do things like pushing docker images on a scheduled basis.&lt;br /&gt;
Perhaps later for demo sites.  WIP.&lt;br /&gt;
&lt;br /&gt;
==== woodie-client-vm ====&lt;br /&gt;
&lt;br /&gt;
Separate agent for woodie-server, this one is a true VM rather than container.&lt;br /&gt;
&lt;br /&gt;
==== woodie-server ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Woodie]]&lt;br /&gt;
&lt;br /&gt;
== osgeo 9 ==&lt;br /&gt;
Server added April 2021, donated by OpenStreetMap project.&lt;br /&gt;
&lt;br /&gt;
Likely machine: https://web.archive.org/web/20191112203042/https://hardware.openstreetmap.org/servers/stormfly-02.openstreetmap.org/&lt;br /&gt;
&lt;br /&gt;
Is an LXD host.  Also Stores lxd images used by other lxd hosts.&lt;br /&gt;
&lt;br /&gt;
[[osgeo9|Configuration Details]]&lt;br /&gt;
&lt;br /&gt;
=== Services running on osgeo9 ===&lt;br /&gt;
==== hop ====&lt;br /&gt;
hop.osgeo9.osgeo.org. For LDAP users allows them to hop thru to get to other containers.&lt;br /&gt;
&lt;br /&gt;
==== Secure (LDAP )  ====&lt;br /&gt;
[https://git.osgeo.org/gitea/sac/osgeo9/wiki/secure-container secure] -- ldap.osgeo.org [[SAC:LDAP]] used for ldap service (a rebuild of old secure.osgeo.osuosl.org) now on Debian 11&lt;br /&gt;
Moved from osgeo7&lt;br /&gt;
&lt;br /&gt;
==== ldap-web ====&lt;br /&gt;
&lt;br /&gt;
Currently housing https://id.osgeo.org/ for LDAP management.&lt;br /&gt;
Deployed via ansible&lt;br /&gt;
Moved from osgeo9&lt;br /&gt;
&lt;br /&gt;
* id.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== jitsi ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:Jitsi]] (for video meetings)&lt;br /&gt;
&lt;br /&gt;
==== nextcloud  ====&lt;br /&gt;
https://nextcloud.osgeo.org&lt;br /&gt;
&lt;br /&gt;
Ubuntu 22.04 LXD/nginx/postgresql 14 container for document sharing similar to dropbox/google drive - nextcloud.lxd - https://nextcloud.osgeo.org [https://git.osgeo.org/gitea/sac/osgeo9/wiki/Nextcloud-container Nextcloud Setup]&lt;br /&gt;
&lt;br /&gt;
home of https://nextcloud.osgeo.org&lt;br /&gt;
This server does not use ssh osgeo-ldap as it was the first container built.  However nextcloud.osgeo.org does authenticate with osgeo ldap.&lt;br /&gt;
&lt;br /&gt;
TODO: add special page for this&lt;br /&gt;
&lt;br /&gt;
==== nginx ====&lt;br /&gt;
nginx (for web proxy of traffic of osgeo9 containers) additional mirror proxy for download.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== adventure (WIP)====&lt;br /&gt;
https://adventure.osgeo.org runs https://github.com/thecodingmachine/workadventure software&lt;br /&gt;
&lt;br /&gt;
==== dronie-client ====&lt;br /&gt;
a ci bot for dronie.osgeo.org which is used for git.osgeo.org/gitea ci jobs&lt;br /&gt;
&lt;br /&gt;
==== limesurvey ====&lt;br /&gt;
Debian 10, PostgreSQL 13, PHP 8 with ldap/ssh. https://limesurvey.osgeo.org &lt;br /&gt;
Setup detailed on [https://git.osgeo.org/gitea/sac/osgeo3/wiki/limesurvey-container limesurvey container]&lt;br /&gt;
&lt;br /&gt;
==== mail ====&lt;br /&gt;
mailman: lists.osgeo.org&lt;br /&gt;
mail.osgeo.org&lt;br /&gt;
tilechache web: tilecache.osgeo.org&lt;br /&gt;
mailserver: postfix&lt;br /&gt;
&lt;br /&gt;
==== matrix ====&lt;br /&gt;
'''Container Name:''' matrix - lxd container with ldap/ssh.&lt;br /&gt;
Hosts [[Matrix]] homeserver ([[SAC:MatrixSynapse]]) and IRC bridges ([[SAC:Heisenbridge]])&lt;br /&gt;
&lt;br /&gt;
https://gitea.osgeo.org/sac/osgeo9/wiki/matrix-container for full detail on how the container is setup&lt;br /&gt;
&lt;br /&gt;
==== pixelfed ====&lt;br /&gt;
&lt;br /&gt;
SHUT OFF (both container and website) cause of lack of interest.  Container is still there.&lt;br /&gt;
[[Pixelfed]] instance reachable on https://photo.osgeo.org to house community photos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== peertube ====&lt;br /&gt;
&lt;br /&gt;
[[Peertube]] instance reachable on https://video.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== pretalx  ====&lt;br /&gt;
Ubuntu 20.04 with OSGeo LDAP and Docker installed.  pretalx software runs in Docker.&lt;br /&gt;
https://talks.osgeo.org - for OSGeo Talk collection and voting See [[Pretalx]]&lt;br /&gt;
&lt;br /&gt;
==== weblate ====&lt;br /&gt;
'''Container Name:''' weblate (for doc translation)&lt;br /&gt;
&lt;br /&gt;
Houses: https://weblate.osgeo.org  (for document translation to different languages)&lt;br /&gt;
&lt;br /&gt;
For further details refer to [[SAC:Weblate]]&lt;br /&gt;
&lt;br /&gt;
==== wordpress ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:Wordpress]]&lt;br /&gt;
&lt;br /&gt;
==== geo-docs container ====&lt;br /&gt;
&lt;br /&gt;
Houses:&lt;br /&gt;
* https://blog.geoserver.org&lt;br /&gt;
* https://geos.osgeo.org&lt;br /&gt;
* https://geotools.org&lt;br /&gt;
* https://geowebcache.osgeo.org&lt;br /&gt;
* https://lastools.osgeo.org&lt;br /&gt;
* https://planet.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wiki ====&lt;br /&gt;
&lt;br /&gt;
See [[OSGeo Wiki]]&lt;br /&gt;
&lt;br /&gt;
==== discourse ====&lt;br /&gt;
&lt;br /&gt;
See [[SAC:Discourse]]&lt;br /&gt;
&lt;br /&gt;
==== mail ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hosts: lists.osgeo.org, mail.osgeo.org and a few other services.&lt;br /&gt;
See [[Mail server]] for more details.&lt;br /&gt;
&lt;br /&gt;
== osgeo 7 ==&lt;br /&gt;
&lt;br /&gt;
Server added June 2018. Intended to replace [[SAC_Service_Status#osgeo3|osgeo3]] and old osgeo4 (before reformat).&lt;br /&gt;
See [[Osgeo7]] for configuration details.&lt;br /&gt;
&lt;br /&gt;
[https://git.osgeo.org/gitea/sac/osgeo7/wiki/_pages Container setup of all the osgeo7 servers is located in https://git.osgeo.org/gitea/sac/osgeo7/wiki/_pages] &lt;br /&gt;
&lt;br /&gt;
Running LXD 3 snap based container management -- LXD version 3.17 as of 2019-09-15&lt;br /&gt;
&lt;br /&gt;
=== Accessing osgeo7 containers via ssh ===&lt;br /&gt;
&lt;br /&gt;
Only the download.osgeo.org is directly exposed ssh via port 22.  To access the other containers, you can tunnel thru &lt;br /&gt;
download.osgeo.org -- You need to be in the shell group to be able to access download and the other servers.  If you are not already put in a [https://trac.osgeo.org/osgeo/newticket SAC Ticket Request].  You also need to have your public key registered. To do so edit your profile [https://id.osgeo.org/ldap/edit]  (and put in your public key)&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your own `.ssh/config` file follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Host osgeo7-*&lt;br /&gt;
   ProxyCommand ssh your_osgeo_id@hop.osgeo7.osgeo.org -W $(sed -e &amp;quot;s/^osgeo7-//;s/$/.lxd/&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;):%p&lt;br /&gt;
   IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
With the above in place, you can connect to any container using:&lt;br /&gt;
&lt;br /&gt;
  ssh your_id@osgeo7-&amp;lt;container_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting:''' In case of &amp;quot;Permission denied (publickey).&amp;quot; after an update to a modern openSSH version, it might well be that your ssh key (RSH key) is disabled in your client in favour of more modern cyphers.&lt;br /&gt;
&lt;br /&gt;
Ugly workaround: add one line `PubkeyAcceptedKeyTypes ...` in `.ssh/config`, to re-enable RSA keys for now (consider to generate a new key):&lt;br /&gt;
&lt;br /&gt;
  vim .ssh/config&lt;br /&gt;
  ...&lt;br /&gt;
  Host *&lt;br /&gt;
     ...&lt;br /&gt;
     PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
... but better read e.g. [https://dev.to/bowmanjd/upgrade-ssh-client-keys-and-remote-servers-after-fedora-33-s-new-crypto-policy-47ag here]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services on osgeo7 ===&lt;br /&gt;
&lt;br /&gt;
==== Monitor ====&lt;br /&gt;
&lt;br /&gt;
debian10 lxd container with ldap/ssh. https://monitor.osgeo.org (houses grafana dashboard (for all servers) and prometheus server for &amp;lt;del&amp;gt;[[SAC_Service_Status#osgeo3|osgeo3]]&amp;lt;del&amp;gt; containers and pulls basic container metrics using node exporters pulled via prometheus servers. Requirs ldap to log into the web console.&lt;br /&gt;
&lt;br /&gt;
Configuring servers for monitoring is detailed [https://git.osgeo.org/gitea/sac/prometheus-config Git Prometheus Config]&lt;br /&gt;
&lt;br /&gt;
==== Download ====&lt;br /&gt;
&lt;br /&gt;
See [[Download Server]]&lt;br /&gt;
&lt;br /&gt;
==== dronie-client-osgeo3 ====&lt;br /&gt;
STOPPED See [https://trac.osgeo.org/osgeo/ticket/3415 #3415]&lt;br /&gt;
Its a copy of dronie-client that was on [[SAC_Service_Status#osgeo3|osgeo3]] which has been shutdown&lt;br /&gt;
This is a debian 10 lxd container running docker. Currently has just one running docker osgeo-drone-agent to serve as a client for dronie-server (dronie.osgeo.org running on osgeo7) &lt;br /&gt;
&lt;br /&gt;
==== gallery ====&lt;br /&gt;
Debian 12 (bookworm) container for AI/ML services, media, and experimental applications.&lt;br /&gt;
'''Resources:''' 8 vCPUs, 12GB RAM&lt;br /&gt;
'''System services:''' nginx, redis, PostgreSQL 17, turnserver, php-fpm&lt;br /&gt;
'''Brian's services (darkblueb):'''&lt;br /&gt;
* GalleryVM media library&lt;br /&gt;
* llamafile experiments&lt;br /&gt;
* photoprism configuration&lt;br /&gt;
'''Lorenzo's services (ominiverdi):'''&lt;br /&gt;
* '''matrix-llmagent''' - Matrix chat bot with LLM integration (uses OpenRouter API)&lt;br /&gt;
** GitHub: https://github.com/ominiverdi/matrix-llmagent&lt;br /&gt;
* '''BGE-M3 Embedding Server''' - Semantic search embeddings via llama.cpp&lt;br /&gt;
** Port: 8094 (localhost only), Model: bge-m3-Q8_0.gguf&lt;br /&gt;
* '''osgeo-library''' - PDF figure/table/equation extraction and semantic search&lt;br /&gt;
** GitHub: https://github.com/ominiverdi/osgeo-library&lt;br /&gt;
** CLI command: &amp;lt;code&amp;gt;osgeo-library&amp;lt;/code&amp;gt; (as ominiverdi user)&lt;br /&gt;
* '''osgeo_wiki_bot''' - Automated wiki/WordPress/Planet content sync and processing&lt;br /&gt;
** GitHub: https://github.com/ominiverdi/osgeo_wiki_bot&lt;br /&gt;
** Cron: wiki (6h), WordPress (daily), Planet (4h), chunk processing (hourly)&lt;br /&gt;
'''Pending SAC actions:'''&lt;br /&gt;
* Install postgresql-16-pgvector package (for osgeo-library semantic search)&lt;br /&gt;
'''Contact:''' darkblueb (Brian Hamlin), ominiverdi (Lorenzo Becchi) or SAC channel&lt;br /&gt;
&lt;br /&gt;
==== live ====&lt;br /&gt;
Home of [http://live.osgeo.org live.osgeo.org] ; &lt;br /&gt;
Running Ubuntu 24.04.3 LTS with OSGeo LDAP SSH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== mapserver ====&lt;br /&gt;
&lt;br /&gt;
See [[MapServer_at_osgeo7]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== nexus (repo.osgeo.org, docker.osgeo.org)  ====&lt;br /&gt;
See [[SAC:Repo]] this is a debian 10 lxd container running docker 19.  &lt;br /&gt;
It currently has one docker container running within it called nexus -- exposed as repo.osgeo.org on nginx.&lt;br /&gt;
&lt;br /&gt;
Also exposed as project dockers for pushing images:  postgis-docker.osgeo.org, geoserver-docker.osgeo.org, geos-docker.osgeo.org, sac-docker.osgeo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== nginx  ====&lt;br /&gt;
Proxy that routes all http/https traffic for the other containers (can be accessed via osgeo7 host lxc or ubuntu@osgeo7-nginx if your key is installed on ubuntu user).&lt;br /&gt;
The nginx container holds the letsencrypt https SSL certs for all the containers and handles the renewal of the letsencrypt certs using certbot renew cronjob.&lt;br /&gt;
Prometheus server to collect all monitoring logs from OSGeo7 &amp;lt;del&amp;gt;(only accessible by [[SAC_Service_Status#osgeo3|osgeo3]]), these get queried via monitor.osgeo.org (running on [[SAC_Service_Status#osgeo3|osgeo3]]) via grafana server.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tracsvn (trac, svn, git) ====&lt;br /&gt;
&lt;br /&gt;
Home of [[Trac]], [[SAC:Git Service|Git]] and [[Subversion]] services.&lt;br /&gt;
&lt;br /&gt;
See [[TracSVN]] for full details.&lt;br /&gt;
&lt;br /&gt;
==== photoprism ====&lt;br /&gt;
Picture gallery. Syncs with https://nextcloud.osgeo.org&lt;br /&gt;
But pictures are shown here https://photoprism.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== old-wiki (stopped) ====&lt;br /&gt;
This used to be housed on [[SAC_Service_Status#osgeo3|osgeo3]], and was moved 2019-09-14 to osgeo7 as old-wiki container.&lt;br /&gt;
wiki.osgeo.org moved back to [[SAC_Service_Status#osgeo3|osgeo3]] on 2020-05-22 and in wiki container. The wiki container is a complete rebuild with files and database restored and upgraded.&lt;br /&gt;
Refer to the [[SAC_Service_Status#osgeo3|osgeo3]] section for more details. &lt;br /&gt;
&lt;br /&gt;
[https://git.osgeo.org/gitea/sac/osgeo7/wiki/old-wiki-container old wiki container] -- used for wiki service (it is an lxd2pc created image of wiki.osgeo.osuosl.org VM that was on [[SAC_Service_Status#osgeo3|osgeo3]])&lt;br /&gt;
&lt;br /&gt;
See [[OSGeo Wiki]]&lt;br /&gt;
&lt;br /&gt;
==== nextcloud-ubuntu (stopped) ====&lt;br /&gt;
Moved to osgeo9&lt;br /&gt;
&lt;br /&gt;
==== dronie-server ====&lt;br /&gt;
&lt;br /&gt;
See [[Dronie]]&lt;br /&gt;
&lt;br /&gt;
==== old-projects (stopped) ====&lt;br /&gt;
-- this is the old projects.osgeo.osuosl.org migrated from osgeo4 as an lxd container, so more or less the same as it was before, with the exception that all the websites are now proxied thru the nginx container.  Websites on it are community-review.foss4g.org and spatialreference.org&lt;br /&gt;
&lt;br /&gt;
To access you need to go thru download.osgeo.org -&amp;gt; old-projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== old-web (stopped) ====&lt;br /&gt;
The old web.osgeo.osuosl.org (was on [[SAC_Service_Status#osgeo3|osgeo3]]) &lt;br /&gt;
&lt;br /&gt;
* mapguide.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== old-webextra ====&lt;br /&gt;
This is a replica of webextra.osgeo.osuosl.org that was hosted on [[SAC_Service_Status#osgeo3|osgeo3]]&lt;br /&gt;
&lt;br /&gt;
Started move on November 29th 2019 and completed December 8th, 2019&lt;br /&gt;
* foss4g.org&lt;br /&gt;
* europe.foss4g.org&lt;br /&gt;
* video.foss4g.org&lt;br /&gt;
* planet.osgeo.org&lt;br /&gt;
* various old foss4g.org years&lt;br /&gt;
* &amp;lt;del&amp;gt;live.osgeo.org&amp;lt;/del&amp;gt; moved to dedicated container&lt;br /&gt;
* journal.osgeo.org (not sure what this is for, should be retired?)&lt;br /&gt;
* &amp;lt;del&amp;gt;vmap0.tiles.osgeo.org&amp;lt;/del&amp;gt; #removed site&lt;br /&gt;
&lt;br /&gt;
Information from webextra on [[SAC_Service_Status#osgeo3|osgeo3]]&lt;br /&gt;
&lt;br /&gt;
** Retired December 8th, 2019 -- and moved to osgeo7 as container old-webextra&lt;br /&gt;
&lt;br /&gt;
* See [[WebExtraVM]] for full details (server: http://webextra.osgeo.osuosl.org)&lt;br /&gt;
* hosts http://planet.osgeo.org, http://mum03.mapserver.org, http://live.osgeo.org&lt;br /&gt;
* http://foss4g.org (main portal) and archive of old sites 2006-2014&lt;br /&gt;
* http://conference.osgeo.org - [[Conference System]] (also: [[SAC:Setup_OCS]])&lt;br /&gt;
* http://journal.osgeo.org / osgeo.org/ojs - [[Journal System]]&lt;br /&gt;
* Redirects for many chapter and other urls handled via /etc/httpd/conf.d/rewrite.conf&lt;br /&gt;
&lt;br /&gt;
==== pycsw ====&lt;br /&gt;
'''Container Name:''' pycsw &lt;br /&gt;
&lt;br /&gt;
* https://demo.pycsw.org&lt;br /&gt;
* '''OGC CSW Reference Implementation and Server demo'''&lt;br /&gt;
* deployment setup at https://github.com/geopython/demo.pycsw.org&lt;br /&gt;
* running hourly teardown/setup cron via docker-compose&lt;br /&gt;
* migrated from [[AdhocVM#Existing_services_hosted_on_the_Ad-hoc_VM:|Adhoc VM]] thanks to [https://trac.osgeo.org/osgeo/ticket/2452 SAC] (May 2020)&lt;br /&gt;
&lt;br /&gt;
=== osgeo7 decommissioned containers ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;del&amp;gt;old-adhoc&amp;lt;/del&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
'''SHUTOFF as of 2022-01-29'''&lt;br /&gt;
&lt;br /&gt;
[[AdhocVM|old-adhoc]] -- this is the old adhoc.osgeo.osuosl.org migrated 2019-05-08 from osgeo4 as an lxd container.  &lt;br /&gt;
Used by osgeo-live for there test docs and by grass for earthquake, and mapserver for demo.&lt;br /&gt;
Note that there is a new live (container that osgeo-live will more to), there is also a mapserver container (which mapserver have started to move their demo to)&lt;br /&gt;
&lt;br /&gt;
To access via ssh you should go thru download.osgeo.org -&amp;gt; old-adhoc.lxd&lt;br /&gt;
It is accessible via https://adhoc.osgeo.org and http://adhoc.osgeo.osuosl.org&lt;br /&gt;
&lt;br /&gt;
* VM used for projects for various adhoc purposes.  Risks to system stability that would be unacceptable on the Projects VM may be ok here. &lt;br /&gt;
* See [[AdhocVM]] for full details, and some notes on services running here.&lt;br /&gt;
* eg http://adhoc.osgeo.osuosl.org/livedvd/docs/en/quickstart/&lt;br /&gt;
&lt;br /&gt;
== osgeo6 ==&lt;br /&gt;
&lt;br /&gt;
See  [[osgeo6]]&lt;br /&gt;
&lt;br /&gt;
== osgeo4 ==&lt;br /&gt;
&lt;br /&gt;
osgeo4 is a real server managed by OSUOSL - can be access via ssh tech_dev@osgeo4.osgeo.osuosl.org -p 2222  (only people with their access keys installed can log in and doesn't allow password access) - password for tech_dev is in the secure container (on osgeo7) / access folder.&lt;br /&gt;
&lt;br /&gt;
In August 2019 the server had new power supply put in and replacement disks.  It was reformatted with Ubuntu 18.04.3 to serve as secondary LXD host to osgeo7&lt;br /&gt;
zfsutils-linux was installed so lxd can use zfs for storage.&lt;br /&gt;
&lt;br /&gt;
=== sshing into osgeo4 containers ===&lt;br /&gt;
Note that all the containers are closed off from direct ssh access except for the hop.osgeo4.osgeo.org.  To access the other containers, you need to hop through hop.&lt;br /&gt;
hop container has port 22 open but requires ssh access so users who’ve been granted rights can hop thru it to other containers using hop.osgeo4.osgeo.org as name.&lt;br /&gt;
&lt;br /&gt;
A convenient block to add to your own .ssh/config file follows where your_id could be your osgeo id or a local account on that container&lt;br /&gt;
&lt;br /&gt;
 Host osgeo4-*&lt;br /&gt;
   ProxyCommand ssh your_osgeo_id@hop.osgeo4.osgeo.org -W $(sed -e &amp;quot;s/^osgeo4-//;s/$/.lxd/&amp;quot; &amp;lt;&amp;lt;&amp;lt; &amp;quot;%h&amp;quot;):%p&lt;br /&gt;
   IdentityFile &amp;quot;path/to/your/private/key&amp;quot;&lt;br /&gt;
   User your_id&lt;br /&gt;
&lt;br /&gt;
Then to access say the wordpress-dev container, you'd do the below&lt;br /&gt;
&lt;br /&gt;
 ssh osgeo4-wordpress-dev&lt;br /&gt;
&lt;br /&gt;
=== osgeo4 baremetal features ===&lt;br /&gt;
It's makeup is as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Settings&lt;br /&gt;
|-&lt;br /&gt;
| Disks || 6 1.8 TB drives&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 48 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPUs || 8 Intel(R) Xeon(R) CPU E5540  @ 2.53GHz (8192kb cache)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk -i&lt;br /&gt;
NAME           MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda              8:0    0  1.8T  0 disk  &lt;br /&gt;
|-sda1           8:1    0  953M  0 part  &lt;br /&gt;
| `-md0          9:0    0  952M  0 raid1 /boot&lt;br /&gt;
`-sda2           8:2    0 46.6G  0 part  &lt;br /&gt;
  `-md1          9:1    0 46.5G  0 raid1 &lt;br /&gt;
	|-lvm-root 253:0    0 37.3G  0 lvm   /&lt;br /&gt;
	`-lvm-swap 253:1    0  7.5G  0 lvm   [SWAP]&lt;br /&gt;
sdb              8:16   0  1.8T  0 disk  &lt;br /&gt;
|-sdb1           8:17   0  953M  0 part  &lt;br /&gt;
| `-md0          9:0    0  952M  0 raid1 /boot&lt;br /&gt;
`-sdb2           8:18   0 46.6G  0 part  &lt;br /&gt;
  `-md1          9:1    0 46.5G  0 raid1 &lt;br /&gt;
	|-lvm-root 253:0    0 37.3G  0 lvm   /&lt;br /&gt;
	`-lvm-swap 253:1    0  7.5G  0 lvm   [SWAP]&lt;br /&gt;
sdc              8:32   0  1.8T  0 disk  &lt;br /&gt;
sdd              8:48   0  1.8T  0 disk  &lt;br /&gt;
sde              8:64   0  1.8T  0 disk  &lt;br /&gt;
sdf              8:80   0  1.8T  0 disk &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sdc,sdd,sde,sdf  form a zfs osgeo4_lxd partition (sdc,sdd) mirrors sde,sdf for total lxd capacity of 3.62 TB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nightly backups of osgeo7, and osgeo4 containers are kept here and named &amp;lt;container&amp;gt;-backup and be kept in a stopped state.&lt;br /&gt;
&lt;br /&gt;
=== Services running on osgeo4 ===&lt;br /&gt;
&lt;br /&gt;
==== hop ====&lt;br /&gt;
'''Container Name:''' hop - this is the only container with direct ssh access via ssh hop.osgeo4.osgeo.org. To get to other containers, you need to hop thru this one. Requires ssh key access&lt;br /&gt;
&lt;br /&gt;
==== ansible-dev ====&lt;br /&gt;
'''Container Name:''' ansible-dev, has ansible 2.9.27 installed and all plugins needed to manage OSGeo ansible infrastructure.&lt;br /&gt;
DEPRECATED, use `ansible-dev`&lt;br /&gt;
&lt;br /&gt;
==== ansible-control ====&lt;br /&gt;
'''Container Name:''' ansible-control, can be used to deploy OSGeo ansible infrastructure. Replaces `ansible-dev`&lt;br /&gt;
&lt;br /&gt;
==== osgeo4-nginx ====&lt;br /&gt;
'''Container Name:''' osgeo4-nginx -&amp;gt;&amp;gt; all web traffick from other containers on osgeo4 get proxied thru here&lt;br /&gt;
&lt;br /&gt;
==== old-web-staging  ====&lt;br /&gt;
'''Container Name:''' old-web-staging - used primarily for experimenting with changes to id.osgeo.org (old-web on osgeo7) like testing out OS and software upgrade etc, changes to LDAP forms and registration, before applying to id.osgeo.org. - https://id.staging.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== pretalx-staging ====&lt;br /&gt;
'''Container Name:''' pretalx-staging - used primarily for experimenting with changes to talks.osgeo.org (pretalx on [[SAC_Service_Status#osgeo9|osgeo9]]) like testing out Docker builds and software upgrade etc, before applying to talks.osgeo.org. - https://talks.staging.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wordpress-dev  ====&lt;br /&gt;
'''Container Name:''' wordpress-dev - used primarily for osgeo.org main website development - https://staging.www.osgeo.org, https://dev.www.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wiki-dev  ====&lt;br /&gt;
'''Container Name:''' wiki-dev - used primarily for experimenting with changes to wiki.osgeo.org like testing out OS and software upgrade etc before appying to wiki.osgeo.org. - https://dev.wiki.osgeo.org&lt;br /&gt;
&lt;br /&gt;
==== wiki-staging  ====&lt;br /&gt;
'''Container Name:''' wiki-staging - used primarily for upgrade changes to wiki.osgeo.org like testing out OS and software upgrade etc before applying to wiki.osgeo.org. - https://staging.wiki.osgeo.org.  The construction of this container is managed by sac ansible-deployment.&lt;br /&gt;
&lt;br /&gt;
==== tracsvn-dev  ====&lt;br /&gt;
'''Container Name:''' tracsvn-dev - This is a 2019-09-05 lxd2pc image of tracsvn.osgeo.osuosl.org (now on osgeo7 as tracsvn) used primarily for experimenting like testing out OS, git and software upgrade etc before appying to production. -- https://dev.git.osgeo.org, https://dev.tracsvn.osgeo.org Has the following sites: https://dev.trac.osgeo.org, https://dev.git.osgeo.org/gitea, https://dev.svn.osgeo.org.&lt;br /&gt;
&lt;br /&gt;
It was upgraded to Debian 11 on 2024-08-21.&lt;br /&gt;
&lt;br /&gt;
==== dronie-client  ====&lt;br /&gt;
'''Container Name:''' dronie-client - This is a debian 10 machine, with OSGeo LDAP authentication and a drone-agent docker running.  To be used with https://dronie.osgeo.org&lt;br /&gt;
&lt;br /&gt;
= Cloud Hosted Servers and other external under SAC Control =&lt;br /&gt;
&lt;br /&gt;
== Future Hosting Plans for Windows / Mac Building ==&lt;br /&gt;
&lt;br /&gt;
[[SAC_Shared_Building_Services|SAC Shared Building Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Atlantic.net ==&lt;br /&gt;
&lt;br /&gt;
* host.postgis.net -p 2222 is an LXD Ubuntu 18.04 16GB RAM/ 6 vCPU, 350GB data, 250GB block storage&lt;br /&gt;
* Currenlty running two lxd containers:&lt;br /&gt;
    debbie: debian 10 postgis.net, planet.postgis.net, debbie.postgis.net (jenkins build bot)  &lt;br /&gt;
    debbie-docker.host.postgis.net - runs docker and serves as a 1.0 agent for dronie.osgeo.org&lt;br /&gt;
&lt;br /&gt;
= QGIS off OSGeo =&lt;br /&gt;
Services on separated machines rented and managed by the QGIS project at hetzner&lt;br /&gt;
&lt;br /&gt;
* website including documentation http://www.qgis.org&lt;br /&gt;
* website building, documentation building, debian/ubuntu nightlies, plugins.qgis.org&lt;br /&gt;
* issues.qgis.org: redmine&lt;br /&gt;
&lt;br /&gt;
= Historical servers (not more in use) =&lt;br /&gt;
&lt;br /&gt;
- [[Telascience Blades (Historical)]]&lt;br /&gt;
&lt;br /&gt;
== web18a.osgeo.osuosl.org ==&lt;br /&gt;
NO LONGER USED - turned off&lt;br /&gt;
'''2019-09-03 Production services www.osgeo.org, 2018.foss4g.org moved to wordpress container on [[osgeo7]]&lt;br /&gt;
Staging services (staging.www.osgeo.org, dev.www.osgeo.org move to wordpress-dev container on [[osgeo4]]&lt;br /&gt;
Grass wordpress is disabled as grass decided to go with another solution, so have grass container on osgeo7'''&lt;br /&gt;
(Cloud hosted server on OSUOSL hardware (not ours) )&lt;br /&gt;
* Debian 9.3 4GB server, host name: web18a.osgeo.osuosl.org require ssh key to log in.&lt;br /&gt;
* Hosts wordpress sites staging.www.osgeo.org,www.osgeo.org, staging.grass.osgeo.org, foss4g2018.osgeo.org&lt;br /&gt;
* Setup details on [https://git.osgeo.org/gitea/osgeo/www_apache_configs/wiki/Web18a-setup Web18a setup]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OSGeo funtoo ==&lt;br /&gt;
&lt;br /&gt;
For lxd experimentation it's an lxd container running other lxd containers and provided by funtoo.org.&lt;br /&gt;
&lt;br /&gt;
OSGeo is paying funtoo via treasurer at osgeo.org.&lt;br /&gt;
&lt;br /&gt;
* [https://git.osgeo.org/gitea/sac/osgeo_funtoo OSGeo Funtoo] osgeo.host.funtoo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* funtoo LXDs currently running:&lt;br /&gt;
** &amp;lt;del&amp;gt;[https://limesurvey.osgeo.org LimeSurvey] -this may be in future migrated to osgeo7 or osgeo3&amp;lt;/del&amp;gt;&lt;br /&gt;
Migrated to [[SAC_Service_Status#osgeo3|osgeo3]]  2020-11-28 -- see [[https://trac.osgeo.org/osgeo/ticket/2362|#2362]]&lt;br /&gt;
&lt;br /&gt;
== osgeo3 ==&lt;br /&gt;
&lt;br /&gt;
osgeo3 physical server refer to [[osgeo3|Configuration Details]] for hardware specs. It was used to run production, but moderately risky things. Refer to [[SAC:Old-osgeo3]] for past history before osgeo3 was rebuilt.&lt;br /&gt;
osgeo3 was a hosted by OSUOSL - No longer accessible &amp;lt;del&amp;gt;can be accessed via ssh tech_dev@osgeo3.osgeo.osuosl.org -p 2222  (only people with their access keys installed can log in and doesn't allow password access) - password for tech_dev is in the secure container (on osgeo7) / access folder.&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Backup (osgeo5) ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Backup now runs on dedicated hardware&amp;lt;del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Provides Rsync backups of download.osgeo.org&amp;lt;del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Provides Bacula backups of various VMs.&amp;lt;del&amp;gt;&lt;br /&gt;
* See [[SAC:Backups]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Hospitales&amp;diff=134766</id>
		<title>User:Hospitales</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Hospitales&amp;diff=134766"/>
		<updated>2025-11-09T15:35:57Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Santtuvp&amp;diff=134765</id>
		<title>User:Santtuvp</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Santtuvp&amp;diff=134765"/>
		<updated>2025-11-09T15:35:26Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Jparedesg&amp;diff=134764</id>
		<title>User talk:Jparedesg</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Jparedesg&amp;diff=134764"/>
		<updated>2025-11-09T15:34:37Z</updated>

		<summary type="html">&lt;p&gt;Ominiverdi: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ominiverdi</name></author>
	</entry>
</feed>