Giter Club home page Giter Club logo

matlab_sar's Introduction

MATLAB SAR Toolbox

The MATLAB SAR Toolbox is a basic MATLAB library to read, write, display, and do simple processing of complex SAR data using the NGA SICD format. It has been released by NGA to encourage the use of SAR data standards throughout the international SAR community. The MATLAB SAR Toolbox complements the SIX library (C++) and SarPy (Python), which are implemented in other languages but have similar goals.

Some sample SICD files are available here, although since the MATLAB SAR Toolbox can make its own SICDs or read other formats with an API that makes them look as if they were SICD, one doesn't really need an actual SICD file to use this toolbox and benefit from the SICD metadata standard.

A sampling of some of the functionality available in the toolbox is provided below.

File I/O

The toolbox has readers and (at least partial) SICD conversion for the following complex SAR formats:

  • ALOS PALSAR-2
  • Capella
  • COSMO-SkyMed
  • Complex NITF
  • GFF (Sandia)
  • ICEYE
  • KOMPSAT-5
  • NISAR
  • PAZ
  • Sentinel-1
  • SICD
  • SIO
  • Synspective
  • RADARSAT-2
  • RADARSAT Constellation Mission (RCM)
  • TerraSAR-X

To read data from a file:

readerobj = open_reader(filename);  % Toolbox will detect file format and parse appropriately
sicdmetadata = readerobj.get_meta();  % Metadata from all formats will be converted to SICD metadata structure
complex_data = readerobj.read_chip([first_column last_column], [first_row last_row]);
readerobj.close();
% Or you can use read_complex_data.m in a single line of code if you won't be reading multiple chunks from an image.

It is important to stress that, since the metadata returned will always be in SICD format regardless of the original format of the data, as long as one writes code to the SICD standard, that code will generically process all of the above formats.

To write data to SICD:

writer_object = NITFWriter(filename, sicdmetadata);
writer_object.write_chip(data, [first_row first_column]);
% The file will be closed when writer_object is deleted or goes out of scope.

Note also that convert_complex_data.m will take a complex image from any format recognized and convert it to SICD file(s).

SICD Validation

For those wanting to produce SICD files from their own SAR data sources, validate_sicd.m is a function that runs a set of over one hundred tests to check for validity in SICD files. It does this through a set of checks for internal consistency with SICD metadata, as well as a set of interactive tests for testing consistency between the SICD metadata and the SICD pixel data.

Processing

Geometry/Projections provides implementations of precise scene-to-image and image-to-scene projections using the SICD sensor model.

Examples using interactive tools are provided for subaperture processing (ApertureTool.m), radiometric measurement (RCSTool.m), and polarimetric visualization (PolTool.m).

With all of these tools, every effort was made to assure they were generic to a wide variety of SAR data types (spotlight/stripmap, zero Doppler range migration/polar format algorithm, etc.)

Visualization

The Taser tool (or TaserClean, if you prefer) provides a way to easily and quickly browse/zoom/pan through large complex SAR datasets that might be too large and cumbersome to fit into memory and then potentially call other tools on selections of that data. The component in those tools that enables this is a reusable component (hg_mitm_viewer.m) that can be easily added into new tools (as was done with the RCSTool and PolTool).

There are also tools for visualizing a SAR collection geometry in KML (Image2KMLGUI.m), browsing image metadata (MetaView.m), and generating a "metaicon" for summarizing a SAR collection (MIM.m).

Origin

The MATLAB SAR Toolbox was developed at the National Geospatial-Intelligence Agency (NGA). The software use, modification, and distribution rights are stipulated within the MIT license.

Pull Requests

If you'd like to contribute to this project, please make a pull request. We'll review the pull request and discuss the changes. All pull request contributions to this project will be released under the MIT license.

Software source code previously released under an open source license and then modified by NGA staff is considered a "joint work" (see 17 USC § 101); it is partially copyrighted, partially public domain, and as a whole is protected by the copyrights of the non-government authors and must be released according to the terms of the original open source license.

matlab_sar's People

Contributors

ckras34 avatar isaacjones199 avatar khanhiai avatar kkasprovich avatar mw-radar avatar utwade avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

matlab_sar's Issues

How to run image formation on AFRL Gotcha data

Ran the AFRL Gotcha data through RGAZCOMP to acquire an image. But remapping and displaying the image yielded an image with all white pixels. Therefore was wondering what is the correct way to apply image formation on the AFRL Gotcha data?

Inserting SICD into NITF Problem

Hi there,

I received a NITF which does not have a CMETAA TRE. I'm attempting to use MATLAB SAR to instead convert the existing TREs into a SICD so it can be read into our software. Everything is working so far, and I'm able to insert fields that don't exist when the program complains.

For example:

sicdMetaData = nitfReader.get_meta();
% Missing the Image plane, so it needs to be inserted
sicdMetaData.Grid.ImagePlane = 'GROUND';
% Missing COAPoly
sicdMetaData.Grid.TimeCOAPoly = struct('Coef', 0);

The problem here is that I suddenly get a warning saying:
"lineNumber 65: columnNumber: 16, cvc-complex-type.4: Attribute 'exponent1' must appear on element 'Coef'"

Now I looked at the source code for where this error is coming from, and even looked at the SICD Schema, and I understand that Coef literally needs the attribute exponent1.... so how would I add an attribute to the siceMetaData in this instance?

Thanks!

Taser fails to load CPHD X 0.3 files

Issue

Attempting to open a CPHD X 0.3 file through the File->Open dialog of the main Taser GUI results in the following error:

Reference to non-existent field 'CollectionInfo'.

Error in Taser>LoadImage (line 324)
if isfield(ph_reader,'read_cphd') && strcmpi(phdmeta.CollectionInfo.RadarMode.ModeType,'SPOTLIGHT')

Error in Taser>OpenMenuItem_Callback (line 288)
handles = LoadImage(handles);

Error in gui_mainfcn (line 95)
feval(varargin{:});

Error in Taser (line 28)
gui_mainfcn(gui_State, varargin{:});

Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)Taser('OpenMenuItem_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating Menu Callback.

Cause

The phdmeta structure returned at line 323 contains a member called CollectionID, not CollectionInfo. This is created during the metadata update to the latest CPHD version (see here) as part of the open_ph_reader function.

Suggested solution

Check for the presence of the phdmeta.CollectionInfo or phdmeta.CollectionID field and test for the ModeType accordingly. This would be similar to this snippet in SARLS.

User manual for MATLAB SAR Toolbox?

Hi there,

I recently downloaded the MATLAB SAR Toolbox, and am trying to learn how to use it, but I am hampered by the lack of a users manual. Does such a manual exist? If so, where might I find it?

As an example, I'm trying to use "PolTool" to produce a Pauli decomposition. I load in the four example files provided (HH, HV, VH, VV), but when I click "Run", MATLAB states, "Unrecognized field name "HH"." I'm not sure how to define the HH band; there is no obvious place to do this in the GUI. This is why I thought a users manual might help.

Any guidance you can provide would be appreciated.

Thanks, Catherine

phase history data CPHD file format

Hey, I'm working on a project to collect my own SAR data with a radar chip moving along a track. I would like to process my data using the polar format algorithm, so I was looking at the pfa_file.m script to do so. Is there a reference material on how to format my data to be processed by the script? Thanks for any help you can give!

Undefined function or variable

Hello, I want to use your code to process the satellite imagery of the sentinel radar, but in the process of running this program , the following error occurred.

**Undefined function or variable'SPEED_OF_LIGHT'.

error: meta2sicd_s1product (line 120)
common_meta.Grid.Row.SS = (SPEED_OF_LIGHT/2) * delta_tau_s;**

I can't solve this problem through debugging. I hope to hear from you.
Thank you very much.

parse_sicd_schema bug

parse_sicd_schema.m does not completely parse the CPHD schema, specifically the ReferenceGeometry.Monostatic section. This means that CPHDs written by the MATLAB SAR Toolbox will not completely validate.

How to ensure consistency in the results of multiple SNR calculation methods in the code RGIQE.m

I use the function ‘RGIQE.m’ in “MATLAB SAR Toolbox” and in this function, the signal level “S” and the noise level "sigma", there are several ways to calculate, here is my unclear point, how to ensure that the signal-to-noise ratio calculated by these ways is consistent, so that the results of equation (4) in the paper "Radar Generalized Image Quality Equation Applied to Capella Open Dataset" are consistent?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.