Hot answers tagged

17

If you look at the product page at LPDAAC, under Layers there is a table that lists each of the bands in the dataset and their characteristics. For the NDVI layer, it is a 16-bit signed integer with a fill value of -3000, and a valid range from -2000 to 10000. However, there is also a scale factor of 0.0001, or 1/10,000. This means that a value of 10000 in ...


11

What you are looking for is a Mathematical Morphology application, Closing to be precise. If you use GDAL to read your image into a numpy array there is a number of libraries that support this operation. scipy.ndimage is one of them and has a function for binary hole filling. In python for a fictional binary dataset as you outlined this would transform the ...


10

GDAL's ENVI driver can be used to write headerless binary data files. The default data interleave is band sequential (BSQ), but BIP or BIL interleave options can be specified as a creation option. For example, to convert a GeoTIFF file foo.tif to a headerless file foo.bin: gdal_translate -of ENVI foo.tif foo.bin The ASCII file foo.bin.hdr will also be ...


8

When remote sensing vegetation, the time of year is very important. In most climates, vegetation has significantly more biomass (i.e., leaves etc.) during the summer, which means that it is easier for the sensor to discern the health of vegetation at that time of year. Two NDVI images of the same location from different times of the year may look different ...


7

You are right: the range of the NDVI is limited to values between -1 and 1 due to its' normalization properties. The negative limit of -1 will be reached if you encounter maximal reflectance (1) in the red wavelength region and zero reflectance in the NIR. The positive limit will be reached by maximal reflectance in the NIR region and zero reflectance in the ...


7

One flaw in your approach. You don't need to go through DN to radiance. You can go straight to the DN to reflectance. Just stick to ((B1*0.00002)-0.1)/0.74457226676389733207607359928648.


6

ROIs in ENVI are stored in pixel-based co-ordinates, with no geographic information at all. The size of the image used to create the ROI is stored in the ROI file, and when you open the ROI list for an image it only displays the currently loaded ROIs that match the image dimensions. Although your images are all of the same location, in the same projection ...


6

GDAL supports NetCDF: http://www.gdal.org/frmt_netcdf.html gdal_translate input.cdf output.tif


5

Reproducing the map example you provided is primarily a cartographic effort and requires very little analysis if you have already calculated NDVI. I would use the following workflow to produce the map similar to the one you provided a link to. Collect the NDVI data to use in your analysis. In the example, they use "Summer" 1989 to 2001. In your case, you ...


5

Save this Landsat Gapfill IDL Model into the ENVI extensions folder: Application extensions folder - "C:\Program Files\Exelis\ENVI5[minor version]\extensions" User extensions folder - "C:\Users\[user name]\.idl\envi\extensions5_[minor version]". E.g for ENVI 5.3 "C:\Program Files\Exelis\ENVI53\extensions" or "C:\Users\MyUserName\.idl\envi\extensions5_3" ...


5

You need to provide more details! There are many "satellite's". If the data is 0-255 it is 8-bit and represents DN. In a processing workflow some analyst prefer to scale floating-point to 16-bit so, bit depth does not always reflect correction level. Since you downloaded the data from Earth Explorer and it is 8-bit it is certainly DN. I do not know what ...


5

In ENVI 5x (the procedure is similar in ENVI 4x or ENVI 5 Classic), use the File > Save As menu to save your TIFF to ENVI format which is a flat binary file. This should default to BSQ, but if it doesn't you can convert using the Convert Interleave tool. You also get header (.hdr) and pyramid (*.enp) files, but you can delete those.


5

The image needs to be cut apart and re-mosaiced after adjusting the colors in each piece. This can be done. As an example, I extracted the green band of the image. To make my work simple (the computing platform I am using, Mathematica 9, does not easily extract pixels along arbitrary polylines), I rotated it to make some of the image boundaries perfectly ...


5

Step 1: Convert from digital numbers (DN) to radiance This is done by applying the multiplier and addition numbers as found in the metadata (.MTL) file. For the thermal bands (B10 and B11), the values are usually, but you should check the file: Add: 0.1 Multiply by: 0.0003342 (3.3420E-04) In ENVI you can apply this correction using 'band math': float(b10)*...


5

30m - 45m is a lot of change in a coastline over one year and only very dynamic areas see that kind of change rate. As such, you are correct in your assessment of the impact of imagery resolution on the analysis. However, your assumption about "same time of day, so tides were more or less the same" is not a very good assumption as tides are more variable ...


5

The rotation can be changed from the python API. The raster grid size, position and rotation parameters can be accessed with the GetGeoTransform() method, and they can be changed with the SetGeoTransform method. The geotransform is a six element tuple: (x_origin, cos(rotation) * x_pixel_size, -sin(rotation) * x_pixel_size, y_origin, sin(rotation) * ...


4

The extents are not exactly the same but this is normal. you should not change the number of pixels by changing their size (what resize does) but by changing the extent using subset by file (or by ROI if you want to have the minimum extent of the two images).


4

ENVI has never been very good with formats other than the native bil and tif. I have seen the behavior you mention, but it is inconstant and dependent on how the file was saved into an img format. It would be good to know how you are saving the file. I find it very unstable to just give output an img file extension. Your best bet is use the "Save File as ...


4

Histogram matching works by forcing the histogram of one image to match as closely as possible the histogram of a second target image. I'm afraid that it won't work on a single image. (There is the exception of using Histogram Matching to force an image to theoretical distribution, like the Gaussian, but that won't help in this case either.) Also, I'm not ...


4

You appear to be looking at a suite of software options. A way of doing it in ArcMap model builder using off the shelf tools could be: point to raster (ensure snap to raster environment is set.) Expand (by 1 pixel to create your block of nine) Extract by mask. This method assumes that your points are not so close that their masks overlap. If overlap is ...


4

Spectral mixture analysis / sub pixel analysis is designed for hyperspectral data, not a 3-band aerial photograph. However, you can try it and see if the output is useful. A tutorial can be found in this pdf and in this ppt/pdf. You will have to skip a significant number of the steps, as you don't have the same amount of information in your dataset. In ...


4

It is technically possible to use the pansharpening algorithm with different sensors, and all your tagged software have pansharpening tools (sometime . However, the quality of the outputs will depend: 1) on the pixel number ratio. In your case, it will be very large (15*15 = 225). IMHO this will be too large, in the litterature you hardly find successful ...


4

It is not clear on weather you want to subset bands upon reading into R or extract a single band from an existing raster stack. Once illustrated, both are quite simple. We can use the 3 band R logo as an example. library(raster) fn <- system.file("external/rlogo.grd", package="raster") To subset a band from an R raster stack/brick you use a double ...


4

There is nothing wrong with your data. It is just the fact that OS still issues coordinates in OSGB36, while Google uses WGS84: So you have to assign EPSG:4277 to your degree coordinates, or EPSG:27700 for raster data in projected coordinates. Make sure that both projections have a `+towgs84' datum shift.


4

You need to use the SetDescription method of the raster band object. rb = destination.GetRasterBand(1) rb.SetDescription('band hello world') rb.WriteArray(myArray) $ cat /tmp/test.hdr ENVI description = { /tmp/test.bsq} samples = 3 lines = 4 bands = 1 header offset = 0 file type = ENVI Standard data type = 4 interleave = bsq byte order = 0 band names =...


4

You can use numpy's reshape and transpose functions to reconstruct the desired result. And the dimensions of the "desired result" is used in one of two forms which is often up to the user to decide: brc[band, row, col], e.g. to index band 1 use brc[0] rcb[row, col, band], e.g. to index band 1 use rcb[:, :, 0] Esri has a good example of BIL, BIP and BSQ to ...


4

ge means "greater or equal" (i.e. >=) gt means "greater than" (i.e. strictly greater, >) le means "lower or equal" (i.e. <=) lt means "lower than" (i.e. strictly lower, <) et is probably a mistake (French for and).


3

As you are trying to compare these images, the key is to do everything to make the images to be as comparable as they can be, so the actual changes can be seen. Here are my steps: Acquire Satellite images that are taken during the same time of the growing season, preferably peak biomass (see Christophers answer). Note, this might be some other time too, ...


3

I'd do something like this using R and raster package kpacks <- c("raster", "sp", "rgdal", 'rgeos') new.packs <- kpacks[!(kpacks %in% installed.packages()[ ,"Package"])] if(length(new.packs)) install.packages(new.packs) lapply(kpacks, require, character.only=T) # remove(kpacks, new.packs) # Projections p.utm33n <- CRS("+init=epsg:32633") # UTM 33N ...


3

For the SAVI, your choice will depend on the percentage of vegetation cover. If you don't see the soil, there no need to correct for the soil. Therefore you should use 0, which is equivalent to the use of NDVI. If you have a very sparse vegetation, you mainly see the soil. Thefore you could use 1. The most commonly used value is 0.5 , the "safest" guess ...


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