Giter VIP home page Giter VIP logo

dsarsim's Introduction

dSARsim - Dummy Synthetic Aperture Radar Simulator

dSARsim is a free and open-source dummy Synthetic Aperture Radar (SAR) simulator written in python v3 which is suited for didactic purposes.

The pseudo-simulation is carried out taking in account only the scene geometry and following simple rules. Radiometry is NOT simulated. The result is a grayscale scene where it is possible to visually discriminate the typical geometrical effects seen in SAR images, e.g. layover, shadowing and foreshortening, and the number of main scatterers for each pixel of the output image.

The software takes as input a Digital Terrain Model (DTM) or a Digital Surface Model (DSM) and returns as output a pseudo-SAR scene in slant range geometry. The main parameters that can be varied are:

  • Incidence angle;
  • Aspect angle;
  • Viewing direction;
  • Azimuth pixel spacing;
  • Slant range pixel spacing.

For further details on the pseudo-simulation principles please have a look at the related documentation, when it will be available... until then try to understand the comments within the code! :)

Want to host dSARsim?

If you wish to host dSARsim on your web server to provide an online "dummy" simulation didactic tool, contact me on www.af-projects.it and we may collaborate!

Usage

-h, --help
       show help message and exit.

-i INPUT, --input INPUT
       input DTM/DSM image (32 bit floating-point GeoTIFF image in UTM coordinates). If the image does not contain pixel size information, dSARsim assumes the pixel spacing is equal to 1 m.

-o OUTPUT, --output OUTPUT
       output image (same format as input).

-ai INCIDENCEANGLE, --incidenceAngle INCIDENCEANGLE
       SAR incidence angle in degrees. Default is 30.

-aa ASPECTANGLE, --aspectAngle ASPECTANGLE
       angle wrt the North-South axis. aspect angle > 0 = clockwise. Default is 0.

-pa AZIMUTHPIXELSPACING, --azimuthPixelSpacing AZIMUTHPIXELSPACING
       spacing between azimuth pixels in the output image in meters, or 0 if automatically set as the same spacing of the input DTM/DSM. Default is 0.

-pr SLANTRANGEPIXELSPACING, --slantRangePixelSpacing SLANTRANGEPIXELSPACING
       spacing between slant range pixels in the output image in meters, or 0 if automatically calculated in order to obtain a flat-terrain-'ground range' simulation. Default is 0.

-d {w,e}, --direction {w,e}
       direction of view of the sensor. 'w' = West to East, 'e' = East to West (assuming the sensor going from North to South with aspect angle = 0). Default is 'w'.

-n NODATAVALUE, --noDataValue NODATAVALUE
       no data value used in the DTM/DSM image, if any. Default is -9999.

-r, --rotateBack
       if aspect angle != 0, rotate back output image by -aspect angle degrees. Use only if azimuthPixelSpacing and slantRangePixelSpacing are not set by user in order to get simulations directly comparable to input DTM/DSM. Default is not set.

-s SUBPROCESSES, --subprocesses SUBPROCESSES
       number of concurrent threads to be run (works only if the module multiprocessing is installed). Default is 1.

--debug
       debug mode. Default is not set.

-v, --version
       show program's version number and exit.

Dependencies

dSARsim is written in python v3.x. Thus, in order to execute it you need a python v3.x environment. The following libraries are needed:

  • sys
  • math
  • copy
  • argparse
  • numpy
  • scipy.ndimage
  • osgeo.gdal
  • multiprocessing.Pool (not necessary but needed for parallel computation)

Current version

0.5

Disclaimer

The author does not guarantee that this software will always provide correct results nor that it will not crash your hardware. As mentioned above, dSARsim is intended for didactic purposes. Any use outside this scope is discouraged. In any case, any use of dSARsim is ONLY user responsibility.

dsarsim's People

Contributors

adamoferro avatar

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.