Skip to main content
27 votes
Accepted

Reading, modifying and writing a geotiff with GDAL in python

Your script is missing the ds.FlushCache method, that saves to disk what you have in memory at the end of the modifications. See below a corrected version of your example. Notice that I also added two ...
Andrea Massetti's user avatar
16 votes
Accepted

LS7 filling the gaps image with Google Earth Engine

You could try filling the gaps before you aggregate them by month. USGS published a LS7 SLC-off gap-filling algorithm. This algorithm was recreated for Google Earth Engine by Noel Gorelick: https://...
Kersten's user avatar
  • 9,917
14 votes

Writing code for monthly NDVI medians in Google Earth Engine?

For the record, here is a good way to do this: var imageCollection = ee.ImageCollection("LANDSAT/LT05/C01/T1"); var months = ee.List.sequence(1, 12); var composites = ee.ImageCollection.fromImages(...
Nicholas Clinton's user avatar
12 votes

Filtering Landsat images base on cloud cover over region of interest

It's going to be something like this, but you'll need to play with the threshold (10 in this example) to meet your needs. Watch out for ROIs that overlap a scene's footprint, but do not contain any ...
Nicholas Clinton's user avatar
10 votes
Accepted

Landsat images with bad quality

The Scan Line Corrector in the ETM+ instrument onboard Landsat-7 suffered a (suspected) mechanical failure in 2003, so all subsequent images suffer from the striping you are seeing in your images. The ...
Radar's user avatar
  • 10.7k
10 votes

Add bands' name and description to the Metadata when stacking using rasterio

If using rasterio >= 1.0, use the dataset.set_band_description(self, bidx, value) method and dataset.descriptions property. Sets the description of a dataset band. Parameters ---------- bidx : int ...
user2856's user avatar
  • 67.3k
9 votes
Accepted

Remote Sensing Landsat Surface Reflectance and Albedo

The Landsat reflectance data you downloaded from USGS has been scaled using a scale factor of 0.0001. So multiplying the digital number by 0.0001 will give you a value between 0 and 1. The 2000 value ...
TonyC's user avatar
  • 659
9 votes

Why Landsat ETM+ panchromatic band' wavelength steps over visible range?

A major reason for having panchromatic bands covering a broad spectral range is a technical reason: most of the solar energy reflected by the Earth is in the NIR wavelength. As the aim of a single ...
radouxju's user avatar
  • 49.8k
9 votes
Accepted

Using cloud confidence to create cloud mask from Landsat 8 BQA?

Here is a more flexible approach that can handle dual (or larger) bit patterns. The bit shifts are performed server-side, using the ee.Image.rightShift() and ee.Image.mod() methods. var RADIX = 2; //...
Tyler Erickson's user avatar
8 votes
Accepted

Error installing landsat-util on Linux

gnutls.h which is required is missing from the filesystem even if you install libcurl4-gnutls-dev which supposedly has the headers files for curl. to correct for that error run: # apt-get install ...
nickves's user avatar
  • 11.5k
8 votes
Accepted

Why Landsat ETM+ panchromatic band' wavelength steps over visible range?

A brief explanation can be found in the pdf file 'Landsat 8 (L8) Data Users Handbook', available from landsat.usgs.gov. On page 9, first paragraph, it is said: The OLI panchromatic band, Band 8, ...
Andre Silva's user avatar
  • 10.3k
8 votes
Accepted

Noisy lines in all scenes for Landsat 7?

You should read about the Landsat 7 ETM+ SLC-off data This refers to all Landsat 7 images collected after May 31, 2003, when the Scan Line Corrector (SLC) failed. These products have data gaps, but ...
Yogesh Chavan's user avatar
7 votes

Calibrating Landsat Level-1 Precision and Terrain (L1TP) corrected data?

The three sensors are all slightly different. However the OLI/TIRs setup is a marked departure from the TM/ETM+ sensors. The changes are succintly summarised by Li et al. 2013 as the: replacing of ...
RoperMaps's user avatar
  • 2,166
7 votes
Accepted

Apply cloud mask to Landsat Imagery in Google Earth Engine Python API

for i in range(start,end-1): should be for i in range(start,end+1): Tested it, and your code works fine.
Rodrigo E. Principe's user avatar
6 votes

Landsat 5, 7, and 8 surface reflectance Tasseled cap

I have found these Tasseled Cap coefficients for use with Landsat Surface reflectance data. Please refer to the source article for applicability to your work. http://journals.plos.org/plosone/article?...
planetsandman's user avatar
6 votes
Accepted

Is Landsat 30m resolution satellite images accurate enough to map land cover on a 40 km² watershed?

The size of the area is not the primary issue for the selection of a satellite sensor resolution. You should rather think about the size of the objects that you are mapping and their contrast with the ...
radouxju's user avatar
  • 49.8k
6 votes
Accepted

Where and what kind of information is geographic information stored in satellite images?

The definition of the TIFF file format allows for the storage of metadata in the file with the actual image data. This could be used by photographers for example, to store the exposure and aperture ...
Spacedman's user avatar
  • 65.1k
5 votes
Accepted

Landsat 5 RGB image looks very dark in QGIS

This is normally due to poor colour rendering. Try adjusting the Contrast enhancement option in layer properties. "Stretch to MinMax" is a good default Also decrease the max value for each band/ ...
Tom Higginbottom's user avatar
5 votes

Mask clouds in LandSat 8 surface refletance image

The Surface Reflectance products contain a band called 'cfmask' and 'cfmask_conf'. The documentation tells you that all pixels labelled 4 in the first band are clouds. If you just want to mask clouds ...
Kersten's user avatar
  • 9,917
5 votes

Landsat / MODIS spatio-temporal fusion: STARFM and software implementations

If you click the "Take me to the download..." button in the page you linked, it will eventually lead you to the download link for the full StarFM distribution. Upon extracting that file, you will ...
renatoc's user avatar
  • 241
5 votes

How to generate a collection of mosaic images by mapping over date list in Google Earth Engine

The following code creates a list of mosaic images, where each mosaic image is constructed from images of a specified time interval. Within each time interval, the "least cloudy pixel", determined by ...
Tyler Erickson's user avatar
5 votes
Accepted

Define original image ID for each pixel of Quality Mosaic in Google Earth Engine

I had the same problem when I created the 'Best Available Pixel' code (https://github.com/fitoprincipe/geebap), and I solved this way: Add a band in which the value of every pixel is the number of ...
Rodrigo E. Principe's user avatar
5 votes

No Landsat across northern Australia in 1974-1977

Between 1974 and 1977 there were intermittent problems with the data recording equipment on the satellite. With limited storage capacity on the tape, delays in transmission were observed. NASA was ...
Maxima's user avatar
  • 1,701
5 votes

Pansharpen landsat mosaic in Google Earth Engine

You can mosaic a collection of pan-sharpened images as follows: // Function to mask clouds using the quality band of Landsat 8. var maskL8 = function(image) { var qa = image.select('BQA'); /// ...
Tyler Erickson's user avatar
5 votes

Increasing spatial resolution of Landsat MSS and TM images?

You can resample the 60- and 30-meter rasters, outputting them to 15 meter pixel size to match the 15-meter rasters (don't forget to snap all of the rasters together!). However, such resampling won't ...
Stu Smith's user avatar
  • 8,192
5 votes
Accepted

Google Earth Engine data extraction from imagery

Do I need to set proj to NAD83 when defining the Point geometry too: point2 = ee.Geometry.Point([lon, lat],'EPSG:4269') Yes, you must set this to correctly interpret the coordinates. This is the only ...
Kevin Reid's user avatar
  • 10.4k
5 votes
Accepted

Using scaling factor for collection 2 level 2 with Roy et al constants

To compute reflectance value using scale factor for both collections (1 and 2) use the following functions: var col1_DN = ee.ImageCollection("LANDSAT/LE07/C01/T2_SR"); var col2_DN = ee....
aldo_tapia's user avatar
  • 13.7k
5 votes
Accepted

(GEE) Constant value in Chart after applying scaling factor to LANDSAT

According to the chart, you seem to be getting a constant value. But that's not true. If you limit the axis, you will see the result clearly. To limit the axis, add viewWindow: {min: -0.20001, max: -0....
Kadir ┼×ahbaz's user avatar
5 votes

Pansharpen a Landsat TM 4-5 image in QGIS

No, Landsat 4 and 5 did not carry a panchromatic sensor with 15m resolution. Sources: https://www.usgs.gov/landsat-missions/landsat-4 https://earth.esa.int/eogateway/instruments/thematic-mapper-tm-
bugmenot123's user avatar
  • 10.9k
5 votes
Accepted

Unable to map land surface temperature in QGIS from downloaded tiff

Check the thumbnails and the metadata before you download. You've downloaded a tile that contains only a tiny amount of data in the bottom corner from the edge of a Landsat path. If you want data for ...
user2856's user avatar
  • 67.3k

Only top scored, non community-wiki answers of a minimum length are eligible