All Projects → aazuspan → geeSharp.js

aazuspan / geeSharp.js

Licence: GPL-3.0 license
Pan-sharpening in the Earth Engine code editor

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to geeSharp.js

ee extra
A ninja python package that unifies the Google Earth Engine ecosystem.
Stars: ✭ 42 (+68%)
Mutual labels:  landsat, remote-sensing, earth-engine
spectral
Awesome Spectral Indices for the Google Earth Engine JavaScript API (Code Editor).
Stars: ✭ 68 (+172%)
Mutual labels:  landsat, remote-sensing, earth-engine
awesome-spectral-indices
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.
Stars: ✭ 357 (+1328%)
Mutual labels:  landsat, remote-sensing, earth-engine
eodag
Earth Observation Data Access Gateway
Stars: ✭ 183 (+632%)
Mutual labels:  landsat, remote-sensing
earthengine-py-examples
A collection of 300+ examples for using Earth Engine and the geemap Python package
Stars: ✭ 76 (+204%)
Mutual labels:  remote-sensing, earth-engine
CRC4Docker
Python scripts for the textbook "Image Analysis, Classification and Change Detection in Remote Sensing, Fourth Revised Edition"
Stars: ✭ 84 (+236%)
Mutual labels:  remote-sensing, earth-engine
pylandsat
Search, download, and preprocess Landsat imagery 🛰️
Stars: ✭ 49 (+96%)
Mutual labels:  landsat, remote-sensing
deepwatermap
a deep model that segments water on multispectral images
Stars: ✭ 81 (+224%)
Mutual labels:  landsat, remote-sensing
pylandtemp
Algorithms for computing global land surface temperature and emissivity from NASA's Landsat satellite images with Python.
Stars: ✭ 110 (+340%)
Mutual labels:  landsat, remote-sensing
Landsat578
Very simple API to download Landsat [1-5, 7, 8] data from Google
Stars: ✭ 54 (+116%)
Mutual labels:  landsat, remote-sensing
land-cover-to-land-use-classification
Satellite image processing pipeline to classify land-cover and land-use
Stars: ✭ 64 (+156%)
Mutual labels:  landsat, remote-sensing
lsru
🔍 🌐Query and Order Landsat Surface Reflectance data via ESPA
Stars: ✭ 24 (-4%)
Mutual labels:  landsat, remote-sensing
deck.gl-raster
deck.gl layers and WebGL modules for client-side satellite imagery analysis
Stars: ✭ 60 (+140%)
Mutual labels:  landsat, remote-sensing
spyndex
Awesome Spectral Indices in Python.
Stars: ✭ 56 (+124%)
Mutual labels:  remote-sensing, earth-engine
CoastSat.slope
Beach-face slope estimation from satellite-derived shorelines, extension of the CoastSat toolbox.
Stars: ✭ 42 (+68%)
Mutual labels:  remote-sensing, earth-engine
Bayesian LSP
A Bayesian hierarchical model that quantifies long-term annual land surface phenology from sparse time series of vegetation indices.
Stars: ✭ 32 (+28%)
Mutual labels:  landsat, remote-sensing
earthengine-apps
A collection of Earth Engine Apps created using geemap, voila, and heroku
Stars: ✭ 20 (-20%)
Mutual labels:  remote-sensing, earth-engine
eemont
A python package that extends Google Earth Engine.
Stars: ✭ 290 (+1060%)
Mutual labels:  remote-sensing, earth-engine
geemap-apps
Interactive web apps created using geemap and streamlit
Stars: ✭ 24 (-4%)
Mutual labels:  earth-engine
retrievalSystem
The back-end of cross-modal retrieval system,wihch will contain services such as semantic location .etc
Stars: ✭ 64 (+156%)
Mutual labels:  remote-sensing

geeSharp

Earth Engine Javascript Open in Code Editor

Pan-sharpen multispectral imagery in the Google Earth Engine Code Editor with one line of code:

var sharp = geeSharp.sharpen(img.select(["B4", "B3", "B2"]), img.select("B8");

Usage

Pan-sharpening

To pan-sharpen an image, separate the lower resolution multispectral bands and the higher resolution panchromatic band into two images and pass them to the geeSharp.sharpen function. For example:

// Import the geeSharp module
var geeSharp = require("users/aazuspan/geeSharp:geeSharp");

// Load an example Landsat 8 TOA image to sharpen
var img = ee.Image("LANDSAT/LC08/C01/T1_TOA/LC08_047027_20160819");

// Select the 30 m spectral bands to sharpen
var ms = img.select(["B4", "B3", "B2"]);
// Select the 15 m panchromatic band
var pan = img.select(["B8"]);

// Pan-sharpen!
var sharpened = geeSharp.sharpen(ms, pan);

By default, pansharpening in geeSharp uses the Smoothing Filter-based Intensity Modulation (SFIM) algorithm because it is fast and produces consistent, high-quality results. However, you may want to experiment with other methods. You can do that by passing an algorithm name to the sharpen function.

var method = "brovey";
var sharpened = geeSharp.sharpen(ms, pan, method);

Most sharpening functions just require the unsharpened multispectral bands and the high-resolution panchromatic band as inputs, but some algorithms (like Gram-Schmidt) may accept other parameters. You can add those parameters after the method name when calling sharpen.

// The Gram-Schmidt algorithm may require additional parameters depending on the size of your image.
var method = "GS";
var geom = ee.Geometry.Point([-122.41676185101713, 47.26851080476613]).buffer(1000);
var scale = 30;
var maxPixels = 1e13;

var sharpened = geeSharp.sharpen(ms, pan, method, geom, scale, maxPixels);

Print geeSharp.methods for a full list of supported algorithms, and see the documentation for descriptions.

Image quality assessment

Image quality metrics measure the distortion between a reference image and an image that has been modified, such as a pan-sharpened image.

// Choose a metric
var metric = "RMSE";
// Reproject the unsharpened image to the sharpened resolution
var reproj = unsharpened.resample("bicubic").reproject(sharpened.projection());
// Calculate the metric
var quality = geeSharp.quality(reproj, sharpened, metric);

Warning
Metrics are affected by spatial resolution, so when comparing unsharpened and pan-sharpened images, always resample and reproject the unsharpened image to high resolution first to ensure an accurate comparison!

Most quality metrics just require an unmodified and a modified image and return a dictionary mapping band names to metric values, but some metrics require other parameters (e.g. ERGAS requires the high and low spectral resolution) and some return a single image-wise value (e.g. RASE and ERGAS). Print geeSharp.metrics for a full list of supported metrics and see the documentation for descriptions.

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