Code Monkey home page Code Monkey logo

csfd_tools's Introduction

CSFD Tools

A tool to conduct crater size-frequency distribution (CSFD) measurements on planetary bodies from polygon shapefiles.

The compiled version of this tool can be downloaded here:
http://www.planet.geo.fu-berlin.de/transfer/TRR170/CSFD-Tools/CSFD_Tools_64bit.exe.

Scientific publications using CSFD Tools can use the following article as a reference:
https://doi.org/10.1002/2018EA000383

Problems or suggestions to:
christian.riedel[at]fu-berlin.de

Requirements

The tool uses the following external libraries:

GDAL and Shapely for geospatial applications and map projections
PyQT4, Matplotlib Basemap, and descartes for the user interface layout
Numpy for array management

All libraries are included in the compiled version of CSFD Tools. No further software is required.
The compiled version was tested on Windows 7 and Windows 10.

Description

The tool uses two polygon shapefiles for CSFD measurements on planetary bodies. One shapefile contains impact craters (circular polygons), the other shapefile contains reference area(s) to be investigated. Any spherical or ellipsoidal reference body and any map projection can be assigned to the shapefiles. However, the same spatial reference has to be applied for both, the crater and the area shapefile to avoid inconsistencies from map distortion effects between the two datasets. Measurements are conducted according to the shapefile geometries and are independent from the attributes of the given shapefiles. Hence, any Geographic Information System which supports the generation of circular polygon features can be used to digitize the data.

CSFD Tools supports "Traditional Crater Counting", "Buffered Crater Counting", "Non-sparseness Correction", and "Buffered Non-sparseness Correction" measurement techniques (for details, see https://doi.org/10.1016/j.icarus.2014.12.008 and https://doi.org/10.1016/j.icarus.2016.05.015). The modified reference areas can be saved as shapefile geometries.

CSFD measurements are saved in an SCC or DIAM textfile for further statistical analysis with Craterstats (available at http://www.geo.fu-berlin.de/en/geol/fachrichtungen/planet/software/index.html#faq_craterstats).

CSFD Tools supports measurements on spheres and biaxial ellipsoids. This includes areas which intersect the Date Line. The implemented techniques are valid for CSFD measurements on planetary bodies that can be approximated by a biaxial ellipsoid with a flattening of 0.3 or lower. Data processing can be parallelized for multi-core support to increase performance.

Limitations

CSFD measurements on reference areas which intersect the poles of a planetary body are not supported at this point. We suggest to shift the datasets towards the equator to avoid polar intersections. We will consider this issue for our future work.

Reference areas which intersect the Date Line are not displayed correctly in the user interface. However, this does not affect the accuracy of the CSFD measurements.

Data processing in multi-core mode is usually faster when compared to single-core. However, since starting the individial multi-core processes takes longer than starting a single-core process, the increase in performance is not significant when the number of impact craters is relatively low (< ~150 craters). In such cases, single-core data processing is usually faster.

csfd_tools's People

Contributors

ch-riedel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

csfd_tools's Issues

Don't use globals -> Use return statements instead

For example:

CSFD_Tools/CSFD_Tools.py

Lines 568 to 571 in 529938d

def get_obliteration_factor(self):
global bufferfactor_crater
bufferfactor_crater = float(self.excl_factor_spin_box.value())

Here it is more useful to use return statements and work further with the value at the place where the method is used. When you use global variables it could be that different methods overwrites your value and you loose deterministic states.

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.