All Projects → r-barnes → ArcRasterRescue

r-barnes / ArcRasterRescue

Licence: MIT license
Extract raster data from ArcGIS/ESRI formats

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to ArcRasterRescue

registrant
Python package used for generating HTML reports about the contents of Esri geodatabases.
Stars: ✭ 44 (-21.43%)
Mutual labels:  arcgis, geodatabase
python-for-gis-progression-path
Progression path for a GIS analyst who wants to become proficient in using Python for GIS: from apprentice to guru
Stars: ✭ 98 (+75%)
Mutual labels:  arcgis, geospatial
Wicket
A modest library for moving between Well-Known Text (WKT) and various framework geometries
Stars: ✭ 484 (+764.29%)
Mutual labels:  arcgis, geospatial
karta
A tidy Python package for geospatial computation
Stars: ✭ 98 (+75%)
Mutual labels:  geospatial, raster-data
WhiteboxTools-ArcGIS
ArcGIS Python Toolbox for WhiteboxTools
Stars: ✭ 190 (+239.29%)
Mutual labels:  arcgis, geospatial
geoflow
R engine to orchestrate and run (meta)data workflows
Stars: ✭ 28 (-50%)
Mutual labels:  geospatial
java-crud-api
No description or website provided.
Stars: ✭ 24 (-57.14%)
Mutual labels:  geospatial
invest
InVEST: models that map and value the goods and services from nature that sustain and fulfill human life.
Stars: ✭ 71 (+26.79%)
Mutual labels:  geospatial
arcgis-android-moremap
基于 ArcGIS for Android 加载高德/百度/腾讯等切片底图
Stars: ✭ 38 (-32.14%)
Mutual labels:  arcgis
jsfiddle-github
JSFiddle implementation for interactive JavaScript examples.
Stars: ✭ 16 (-71.43%)
Mutual labels:  geospatial
geoscript-py
A Python GeoScript Implementation
Stars: ✭ 52 (-7.14%)
Mutual labels:  geospatial
jpn-atlas
TopoJSONフォーマットの日本の国、都道府県、市区町村の境界データ。Japanese municipality and prefecture boundary data in topojson format.
Stars: ✭ 17 (-69.64%)
Mutual labels:  geospatial
wms
WMS/WMTS server for Node.js
Stars: ✭ 60 (+7.14%)
Mutual labels:  geospatial
leafmap
A Python package for interactive mapping and geospatial analysis with minimal coding in a Jupyter environment
Stars: ✭ 1,299 (+2219.64%)
Mutual labels:  geospatial
rastercube
rastercube is a python library for big data analysis of georeferenced time series data (e.g. MODIS NDVI)
Stars: ✭ 15 (-73.21%)
Mutual labels:  geospatial
DirectionalLineSymbol
ArcGIS javascript custom Line Symbol. Subclass of SimpleLineSymbol to display direction markers on line symbols.
Stars: ✭ 42 (-25%)
Mutual labels:  arcgis
GMT.jl
Generic Mapping Tools Library Wrapper for Julia
Stars: ✭ 148 (+164.29%)
Mutual labels:  geospatial
whiteboxgui
An interactive GUI for WhiteboxTools in a Jupyter-based environment
Stars: ✭ 94 (+67.86%)
Mutual labels:  geospatial
EarthSim
Tools for working with and visualizing environmental simulations.
Stars: ✭ 61 (+8.93%)
Mutual labels:  geospatial
geojson
Library for serializing the GeoJSON vector GIS file format
Stars: ✭ 171 (+205.36%)
Mutual labels:  geospatial

DOI

ArcRasterRescue

Seeking someone knowledgeable in the ways of crafting GDAL drivers to help with that part of the effort.

The enclosed program extracts (rescues!) raster data from an ArcGIS File Geodatabase into a GeoTIFF file.

List the numbers and names of rasters in the geodatabase using

./arc_raster_rescue.exe <path/to/geodatabase.gdb/>

Extract to a GeoTIFF using

./arc_raster_rescue.exe <path/to/geodatabase.gdb/> <RASTER NUM> <OUTPUT FILE>

The geodatabase path must end with a slash!

Requirements

On an Ubuntu/Debian system you can obtain these with:

sudo apt install cmake libgdal-dev zlib1g-dev g++

Compilation

To compile use the standard cmake sequence:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make

Add -DEXPLORE=ON to print additional information useful for development to stderr as the program runs.

An executable called arc_raster_rescue.exe is produced.

TODO

  • Turn this into a GDAL driver.
  • Improve endian checking.
  • Check for other kinds of compressions.
  • Improve calculation of raster dimensions.
  • Improve geotransform calculations: they're kind of experimental at the moment.
  • Switch some identification strings to ENUM values so things run quicker

Credits

  • Even Roualt did much of the work figuring out the FileGeodatabase specification. His notes are here and a program he wrote for extractin FGDB data is here.

  • James Ramm did some exploratory work that resulted in determining that the raster data (at least in cases he tested) had been compressed using zlib. (Link)

  • Richard Barnes converted code by Even Roualt into C++ as a base for Arc Raster Rescue and, starting from some notes by James Ramm, continued deciphering the format. He reorganized the code extensively to increase its modularity, determined how to connect the various raster tables together, drafted geotransform and WKT projection extraction capabilities, determined how data types were specified, and produced a working executable to extract raster data into GeoTIFFs. He also wrote this paragraph. :-)

Cite This

Please cite this software:

Barnes, Richard. 2020. Arc Raster Rescue. Software. doi: 10.5281/zenodo.4128479.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].