Skip to main content
Ctrl+K
torchgeo 0.10.0.dev0 documentation - Home torchgeo 0.10.0.dev0 documentation - Home
  • User Documentation
  • Tutorials
  • API Reference
  • GitHub
  • Slack
  • YouTube
  • Hugging Face
  • User Documentation
  • Tutorials
  • API Reference
  • GitHub
  • Slack
  • YouTube
  • Hugging Face

Section Navigation

  • Installation
  • Contributing
  • Glossary
  • Related Libraries
  • Changelog
  • User Documentation
  • Related Libraries

Related Libraries#

TorchGeo is not the only geospatial machine learning library out there, there are a number of alternatives that you can consider using. The goal of this page is to provide an up-to-date listing of these libraries and the features they support in order to help you decide which library is right for you. Criteria for inclusion on this list include:

  • geospatial: Must be primarily intended for working with geospatial, remote sensing, or satellite imagery data. This rules out libraries like torchvision, which provides little to no support for multispectral data or geospatial transforms.

  • machine learning: Must provide basic machine learning functionality. This rules out libraries like GDAL, which is useful for data loading but offers no support for machine learning.

  • library: Must be an actively developed software library with testing and releases on repositories like PyPI or CRAN. This rules out libraries like TorchSat, RoboSat, and Solaris, which have been abandoned and are no longer maintained.

When deciding which library is most useful to you, it is worth considering the features they support, how actively the library is being developed, and how popular the library is, roughly in that order.

Note

Software is a living, breathing organism and is constantly undergoing change. If any of the below information is incorrect or out of date, or if you want to add a new project to this list, please open a PR!

Last updated: November 2025

Features#

Key: βœ… full support, 🚧 partial support, ❌ no support

Library

ML Backend

I/O Backend

Spatial Backend

Transform Backend

Datasets

Weights

CLI

GUI

Reprojection

STAC

Time Series

TorchGeo

PyTorch

GDAL, h5py, laspy, NetCDF4, OpenCV, pandas, pillow, scipy, xarray

geopandas, R-tree*

Kornia

141

132

βœ…

❌

βœ…

🚧

🚧

TerraTorch

PyTorch

GDAL, h5py, pandas, xarray

Albumentations

27

13

βœ…

❌

βœ…

❌

🚧

OTB

LibSVM, OpenCV, Shark

GDAL

0

0

βœ…

βœ…

βœ…

❌

❌

DeepForest

PyTorch, TensorFlow*

GDAL, OpenCV, pandas, pillow, scipy

R-tree

Kornia, Albumentations*

0

4

βœ…

❌

❌

❌

❌

Raster Vision

PyTorch, TensorFlow*

GDAL, OpenCV, pandas, pillow, scipy, xarray

STAC

Albumentations

0

6

βœ…

❌

βœ…

βœ…

🚧

samgeo

PyTorch

GDAL, OpenCV, pandas, xarray

geopandas

numpy

0

0

❌

βœ…

βœ…

❌

❌

spopt

scikit-learn

pandas

shapely

numpy

0

0

❌

❌

βœ…

❌

❌

GDL

PyTorch

GDAL, pandas

Kornia

0

3

βœ…

❌

❌

❌

❌

GeoAI

PyTorch

GDAL, xarray

geopandas

Albumentations

0

6

❌

βœ…

βœ…

βœ…

❌

SITS

R Torch

GDAL

tidyverse

22

0

❌

❌

βœ…

βœ…

βœ…

SPy

numpy

numpy

numpy

3

0

❌

❌

❌

❌

❌

srai

PyTorch

pandas, polars, duckdb

geopandas, duckdb-spatial

0

0

❌

❌

❌

❌

❌

ML4Floods

PyTorch

pandas

geopandas

Albumentations

0

0

❌

❌

βœ…

❌

🚧

GeoTessera

scikit-learn

GDAL

geopandas

0

0

βœ…

❌

βœ…

❌

❌

AIDE

PyTorch

pillow

torchvision

0

0

❌

βœ…

❌

❌

❌

scikit-eo

scikit-learn, TensorFlow

GDAL, pandas, scipy

geopandas

numpy

0

0

❌

❌

❌

❌

🚧

Myria3D

PyTorch

h5py, numpy

PDAL

PyTorch

0

0

🚧

❌

❌

❌

❌

OTBTF

TensorFlow

GDAL, OTB

0

0

βœ…

❌

βœ…

❌

❌

GeoDeep

ONNX

GDAL

0

7

βœ…

❌

βœ…

❌

❌

rs-embed

PyTorch

Earth Engine, tifffile, xarray, pandas, pillow

pyproj, affine

0

19

βœ…

❌

❌

❌

βœ…

torchange

PyTorch

Apache Arrow, skimage

Albumentations

8

8

❌

❌

❌

❌

βœ…

*Support was dropped in newer releases.

ML Backend: The machine learning libraries used by the project. For example, if you are a scikit-learn user, eo-learn may be perfect for you, but if you need more advanced deep learning support, you may want to choose a different library.

I/O Backend: The I/O libraries used by the project to read data. This gives you a rough idea of which file formats are supported. For example, if you need to work with lidar data, a project that uses laspy may be important to you.

Spatial Backend: The spatial library used to perform spatial joins and compute intersections based on geospatial metadata. This may be important to you if you intend to scale up your simulations.

Transform Backend: The transform library used to perform data augmentation. For example, Kornia performs all augmentations on PyTorch Tensors, allowing you to run your transforms on the GPU for an entire mini-batch at a time.

Datasets: The number of geospatial datasets built into the library. Note that most projects have something similar to TorchGeo’s RasterDataset and VectorDataset, allowing you to work with generic raster and vector files. Collections of datasets are only counted a single time, so data loaders for Landsats 1–9 are a single dataset, and data loaders for SpaceNets 1–8 are also a single dataset.

Weights: The number of model weights pre-trained on geospatial data that are offered by the library. Note that most projects support hundreds of model architectures via a library like PyTorch Image Models, and can use models pre-trained on ImageNet. There are far fewer libraries that provide foundation model weights pre-trained on multispectral satellite imagery.

CLI: Whether or not the library has a command-line interface. This low-code or no-code solution is convenient for users with limited programming experience, and can offer nice features for reproducing research and fast experimentation.

Reprojection: Whether or not the library supports automatic reprojection and resampling of data. Without this, users are forced to manually warp data using a library like GDAL if they want to combine datasets in different coordinate systems or spatial resolutions.

STAC: Whether or not the library supports the spatiotemporal asset catalog. STAC is becoming a popular means of indexing into spatiotemporal data like satellite imagery.

Time-Series: Whether or not the library supports time-series modeling. For many remote sensing applications, time-series data provide important signals.

GitHub#

These are metrics that can be scraped from GitHub.

Library

Contributors

Forks

Watchers

Stars

Issues

PRs

Releases

Commits

Test Coverage

License

TorchGeo

122

545

56

3,989

208

2,893

20

3,054

100%

MIT

TerraTorch

47

150

25

773

64

855

46

3,702

55%

Apache-2.0

DeepForest

41

253

17

727

107

683

117

1,281

87%

MIT

OTB

41

123

38

384

3

24

129

34,558

56%

Apache-2.0

Raster Vision

32

396

68

2,212

41

1,465

25

3,640

90%

Apache-2.0

samgeo

25

424

61

3,968

5

233

60

337

13%

MIT

GeoAI

22

420

37

2,853

8

441

80

494

6%

MIT

spopt

20

63

11

371

42

289

20

1,106

77%

BSD-3-Clause

GDL

18

66

14

195

26

287

64

1,391

7%

MIT

SITS

17

88

26

531

23

688

50

7,015

91%

GPL-2.0

SPy

15

147

33

661

25

43

32

559

69%

MIT

srai

15

30

11

364

104

286

44

345

75%

Apache-2.0

ML4Floods

13

44

18

179

1

73

0

859

0%

LGPL-3.0

GeoTessera

12

29

4

292

25

46

15

359

15%

MIT

AIDE

11

60

22

242

28

23

4

782

0%

MIT

scikit-eo

8

29

8

244

3

15

26

582

32%

Apache-2.0

Myria3D

7

35

12

286

20

79

29

980

57%

BSD-3-Clause

OTBTF

5

38

10

168

22

19

34

1,995

55%

Apache-2.0

GeoDeep

4

48

12

448

2

4

12

104

0%

AGPL-3.0

rs-embed

4

12

1

103

10

39

3

359

61%

Apache-2.0

torchange

2

20

6

235

7

16

5

185

0%

Apache-2.0

Contributors: The number of contributors. This is one of the most important metrics for project development. The more developers you have, the higher the bus factor, and the more likely the project is to survive. More contributors also means more new features and bug fixes.

Forks: The number of times the git repository has been forked. This gives you an idea of how many people are attempting to modify the source code, even if they have not (yet) contributed back their changes.

Watchers: The number of people watching activity on the repository. These are people who are interested enough to get notifications for every issue, PR, release, or discussion.

Stars: The number of people who have starred the repository. This is not the best metric for number of users, and instead gives you a better idea about the amount of hype surrounding the project.

Issues: The total number of open issues. Although it may seem counterintuitive, the more issues, the better. Large projects like PyTorch have tens of thousands of open issues. This does not mean that PyTorch is broken, it means that it is popular and has enough issues to discover corner cases or open feature requests.

PRs: The total number of open and closed pull requests. This tells you how active development of the project has been. Note that this metric can be artificially inflated by bots like dependabot.

Releases: The number of software releases. The frequency of releases varies from project to project. The important thing to look for is multiple releases.

Commits: The number of commits on the main development branch. This is another metric for how active development has been. However, this can vary a lot depending on whether PRs are merged with or without squashing first.

Test Coverage: The percentage of the core library that is hit by unit tests. This is especially important for interpreted languages like Python and R where there is no compiler type checking. 100% test coverage is ideal, but 80% is considered good.

License: The license the project is distributed under. For commercial researchers, this may be very important and decide whether or not they are able to use the software.

Downloads#

These are download metrics for the project. Note that these numbers can be artificially inflated by mirrors and installs during continuous integration. They give you a better idea of the number of projects that depend on a library than the number of users of that library.

Library

PyPI/CRAN Last Week

PyPI/CRAN Last Month

PyPI/CRAN All Time

Conda All Time

Total All Time

TorchGeo

58,758

286,375

2,947,860

52,603

3,000,463

TerraTorch

27,354

120,297

438,804

1,885

440,689

OTB

0

0

0

0

0

DeepForest

4,055

17,086

1,081,123

111,344

1,192,467

Raster Vision

188

2,765

284,202

6,832

291,034

samgeo

4,150

18,257

391,391

75,523

466,914

spopt

6,064

37,547

1,361,250

304,215

1,665,465

GDL

0

0

0

0

0

GeoAI

4,244

17,975

161,034

41,438

202,472

SITS

135

641

30,541

159,087

189,628

SPy

9,310

41,150

1,933,785

223,471

2,157,256

srai

151

874

64,212

0

64,212

ML4Floods

15

72

12,446

0

12,446

GeoTessera

664

2,486

17,601

0

17,601

AIDE

0

0

0

0

0

scikit-eo

89

319

28,295

0

28,295

Myria3D

11

37

5,359

0

5,359

OTBTF

0

0

0

0

0

GeoDeep

448

2,744

30,636

0

30,636

rs-embed

146

353

1,179

0

1,179

torchange

564

3,508

43,276

2,478

45,754

PyPI Downloads: The number of downloads from the Python Packaging Index. PyPI download metrics are computed by PyPI Stats and PePy.

CRAN Downloads: The number of downloads from the Comprehensive R Archive Network. CRAN download metrics are computed by Meta CRAN.

Conda Downloads: The number of downloads from Conda Forge. Conda download metrics are computed by Conda Forge.

previous

Glossary

next

Changelog

On this page
  • Features
  • GitHub
  • Downloads
Show Source

Β© Copyright TorchGeo Contributors.

Created using Sphinx 9.1.0.

Built with the PyData Sphinx Theme 0.20.0.