SatelliteApplicationsCatapult / fulgurite

Licence: other
A library to read and write GeoTIFF images using Apache Spark

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to fulgurite

opticks
Open source remote sensing analysis tool
Stars: ✭ 37 (+131.25%)
Mutual labels:  geotiff
terrain-rgb
A detailed tutorial about how to convert geo-tiff files containing Digital Elevation Model (DEM) data into a pyramid of png tiles
Stars: ✭ 65 (+306.25%)
Mutual labels:  geotiff
GeoArrays.jl
Simple geographical raster interaction built on top of ArchGDAL, GDAL and CoordinateTransformations
Stars: ✭ 42 (+162.5%)
Mutual labels:  geotiff
krawler
A minimalist (geospatial) ETL
Stars: ✭ 51 (+218.75%)
Mutual labels:  geotiff
tile-map-service-net5
Tile server for .NET 5 platform with MBTiles, Filesystem, GeoTIFF, HTTP sources and XYZ, TMS, WMTS, WMS endpoints (protocols support)
Stars: ✭ 45 (+181.25%)
Mutual labels:  geotiff
geoblaze
Blazing Fast JavaScript Raster Processing Engine
Stars: ✭ 80 (+400%)
Mutual labels:  geotiff
geowarp
Super Low-Level Raster Reprojection and Resampling Library
Stars: ✭ 20 (+25%)
Mutual labels:  geotiff
google map satellite download
谷歌地图卫星影像下载,合并,导出geotiff工具
Stars: ✭ 24 (+50%)
Mutual labels:  geotiff
dem2mesh
Quickly generate 2.5D meshes from elevation models.
Stars: ✭ 53 (+231.25%)
Mutual labels:  geotiff
georaster-layer-for-leaflet
Display GeoTIFFs and soon other types of raster on your Leaflet Map
Stars: ✭ 168 (+950%)
Mutual labels:  geotiff

Fulgurite

Build Status License

Fulgurite is a way to use Apache Spark to process GeoTIFF images in a distributed way.

Fulgurite is also the name for a rock formed by a lightning strike with the ground.

Overview

This project mainly consists of functions in the GeoSparkUtils class which allow the reading and writing of GeoTIFF files along with other operations.

GeoTIFF files can be read using the GeoSparkUtils.GeoTiffRDD() function, this will return an RDD containing index of pixels and band values.

Writing GeoTIFF files is done with GeoSparkUtils.saveGeoTiff(). The results of this then need to be joined together with the join output methods in GeoSparkUtils. The header will be in header.tiff and the body in the part-* files. A line like the following should join things up:

GeoSparkUtils.joinOutputFiles(opts("output") + "/header.tiff", opts("output"), opts("output") + "/data.tif")

The Class MangleColours gives a good example of how to use these. The org.catapult.sa.fulgurite.examples package contains several other examples.

Deployment and Usage

Currently this project is not in a Maven repo. We will be working on that soon. Build the entire project with the ./gradlew build target or use the ./gradlew :fulgurite-core:install target to put it in your local maven cache and then include the following for your dependency:

Gradle:

compile 'org.catapult.sa:fulgurite-core:0.1-SNAPSHOT'

Maven:

  <dependency>
    <groupId>org.catapult.sa</groupId>
    <artifactId>fulgurite-core</artifactId>
    <version>0.1-SNAPSHOT</version>
  </dependency>

Please note: building on windows requires the use of the hadoop winutils.exe to be able to run the tests This can be set by filling out the placeholder gradle.properties file included with the project. Or you can add it to your personal gradle.properties in ~/.gradle/ A directory needs to be created some where on your system that contains the hadoop windows build then the path to this directory needs to be added to your gradle.properties systemProp.hadoophome setting. Also note in properties files \ is an escape character so they either need to be doubled up \\ or replaced with / The path should also not be quoted or have spaces escaped.

If there are any problems with this process, please raise a bug.

Contributing

All contributions to this project are warmly welcomed. If you have found bugs please raise them. We probably won't find it if you don't tell us about it. Pull requests with new features or bug fixes are extremely welcome. Please make sure there are test cases (We don't want the test debt to get worse) and that the code is formatted similar to existing code. New use cases or feature requests are also welcome.

Above all else, keep things civil.

Please see issues list (filtered by enhancement) for a current list of features we want to implement. The issues list is a good place to find things that need fixing. If there is some thing that we think is easy to fix but we don't have time to deal with we will tag it.

If you are trying to fix something and have any questions please get in contact we will be happy to try and explain things if we can.

License

This project is licensed under the LGPL3.

Copyright (c) 2016 Satellite Applications Catapult.

Thanks

Thanks to the Apache Spark project and JAI for building the code this is built on top of. Thanks to Mike Nidel for the GeoTIFF IIO Metadata Adapter which we used early in this project and taught us a lot about the GeoTIFF format.

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].