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! :)
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!
-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.
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)
0.5
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.