I have used OpenCV in the past to train for object detection for geo. Orfeo Toolbox is a good open source choice as Vascobnunes pointed out. For a closed-source version, you can take a look at Feature Analyst (that also has an ArcGIS extension).
At the end, it boils down to training a support vector machine. There are several libraries that you can use for ...
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 ...
I encountered similar issues as well with polygons. Maybe you have a similar problem.
Error Message by ESRI: "Invalid Topology (Incomplete Void Poly)"
Actual Error: "Invalid Geometry"
Fix: Run "Repair Geometry" (changes data in-place, be careful, there is no undo)
What happens is that the error reported is not using the ESRI terminology of Topology/...
You can't 'remove' clouds from optical imagery, what you see is what you get; they are photographs and there is no optical data recorded from below the clouds in the same way that there is no data underneath building roofs.
If you use remote sensing data of a longer wavelength than light such as microwave, the water particles in the clouds do not absorb the ...
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 ...
I am afraid satisfying roof detection cannot be achieved with only one single satellite image. You should try to use other sources of information.
The following article describes a method using a DEM + aerial image pairs + cadastral data:
M. Durupt, F. Taillandier. Automatic Building Reconstruction from a Digital Elevation Model and Cadastral Data: An ...
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 ...
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 ...
Do you have access to spatial analyst?
If so, the Con function will do exactly what you want. Create a "condition" raster that is 1 where you want the values changed to Ras2 and 0 everywhere else.
Execute the statements:
Ras1 = Con(Raster("condition"), Raster("Ras2"), Raster("Ras1"))
This will replace Ras1 with your new raster. If you ...
"Starting with GDAL 1.10..."
"I am using the Python bindings with GDAL 1.9.2..."
GDAL 1.10 hasn't been released yet. Beta 1 was released a short while ago or if you're using Windows, you can grab a build of the current trunk (1.10dev) from GISInternals.
If you're stuck with 1.9.2 for a while, here's some code to parse envi headers (envi.py)
Some more ...
Most MODIS QA data (including the Cloud Mask data) are not stored as separate raster bands, where each band is a grid where each cell is one value of one QA data field. Instead, the QA data are concatenated into strings of bits. So instead of having Band 1 be 00 and Band 2 be 11, they just concatenated them (right-to-left) as 1100 which is a completely ...
The simplest option would be the use of Raster Calculator with a conditional statement.
Your statement may look something like the following with 'threshold' replaced with whatever value you like. The resulting raster will give you pixels with value=1 where values are greater than threshold, and NoData where values are less than threshold.
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 ...
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 ...
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.
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 ...
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:
Multiply by: 0.0003342 (3.3420E-04)
In ENVI you can apply this correction using 'band math':
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 ...
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:
cos(rotation) * x_pixel_size,
-sin(rotation) * x_pixel_size,
sin(rotation) * ...
Just in case ArcMap doesn't work, you might want to try GRASS' v.clean tool. You can install GRASS with QGIS. After installing:
Cleaning of topology of a SHAPE file using the GRASS Toolbox
Load the SHAPE file into QGIS
Use existing GRASS mapset (or create a new one) with matching projection settings
Now you have to transfer the SHAPE file from ...
you can try doing object based classification based on size and signatures of the vehicles and look at the results. Then you can remove vehicles from the image. Afaik, there is nothing that will do it in one click.
Assuming this is just a follow on to your previous question about vegetation indices, I would recommend not using the Vegetation Index Calculator. It's quite cumbersome, and (as far as I can tell) more relevant for hyperspectral imagery where you want ENVI to automatically choose the correct band from an image cube based on that wavelengths defined in the ...
Well from one image only, you can do supervised or unsupervised classification. Try a few times and see if results are good.
Better way, the way I did it, was making orthophotos from images. Then I had footprint of the building so i filtered terrain from the image. Then I did classification of the pixels and created vector objects.
If you have DEMs, or ...
In model builder,
iterating rasters from a workspace,
constructing raster file path and file names
feeding the path into Raster Calculator and extend file names with the desired band ID.
defining an output path
This may help.
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"
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 ...
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).