Skip to content

Latest commit

 

History

History
100 lines (67 loc) · 5.69 KB

A-Software.asc

File metadata and controls

100 lines (67 loc) · 5.69 KB

Appendix A: Software

BEFORE YOU READ ANY OF THIS

These sections are for information only: if you just want to get LSDTopoTools working all you need to read is the section on [Installing LSDTopoTools using VirtualBox and Vagrant].

There are quite a few different components you need to get working on your system to perform the examples in this book (sorry!). Some of these are essential, and some are optional and included for completeness. In the following appendices, instructions for getting them installed on Windows or Linux are included. Since the author of this book does not have any computers running on friut-based operating system, I’m afraid instructions for getting the software working on such systems will require a bit of homework, but in theory installation on such systems should be similar to installation on Linux systems.

Essentials

The following tools are core to the contents of this book, and will need to be installed before you can work on the exercises in the book.

Git

Git is version control software. It helps you keep track of changes to your scripts, notes, papers, etc. It also facilitates communication and collaboration through the online communities github and bitbucket. The source code for LSDTopoTools is on github so by using Git you can make sure you always have the latest version of the software.

C++ tools

A number of scientific programs are written in these languages so information on how to get them working on your windows machine is incluided here for completeness.

To get these working you will need

  1. The compiler. This is what translates the program into something the computer can understand.

  2. The tool make, which automates building programs.

  3. The tool gdb. which stands for gnu debugger, a tool for debugging code.

  4. The tool gprof, which is a profiler: it allows you to see which parts of your code are using the most computational resources.

Python

Python is a programming language used by many scientists to visualize data and crunch numbers. You can also use it to automate data management.

You will need:

  1. The python programming language

    1. Scipy, for scientific python. It includes lots of useful packages like

      1. Numpy for fast numerics.

      2. Matplotlib for plotting.

      3. Pandas for data analysis.

    2. pip for python package management.

GDAL

GDAL (the Geospatial Data Abstraction Library) is used to manipulate topographic data so that it can be fed into LSDTopoTools.

Useful extras

You could find these tools useful. In particular, my documentation is written using something called asciidoctor, which is implemented in a programming language called Ruby.

A virtual machine

This is essential if you are going to follow our instructions for [Installing LSDTopoTools using VirtualBox and Vagrant], which is propbably what you will want to do if you do not have a Linux machine.

To do this you will need to intall Vagrant and VirtualBox.

Geographic Information Software

If you want to look at the data produced by LSDTopoTools, you could use our lightweight python tools, but in many cases you will want to use a GIS.

The common options are:

  • ArcGIS The GIS most frequently used by commercial enterprise and government. It is commercial software and rather expensive. If your organisation has a licence, fantastic. However not all users of our software will have a licence so all tutorials in this book will be based on open source software.

  • QGIS A GIS that behaves much like ArcGIS, but is open source.

  • Whitebox A very lightweight, open source GIS written in java. This is handy since it is quite portable: there is nothing to install, just copy the .jar file on your computer and away you go!

Ruby

Ruby is a programming language used frequently by web developers and has many package for building documentation and automating collection of data over the internet. In this book we will really only use it for documentation, but there is a large ecosystem of open source tools available in Ruby. It hasn’t been adopted to a great extent by the scientific community but you may still find useful tools, particularly if you are gathering online information.

The main reason we use Ruby is to generate our documentation using Asciidoctor, so if you fancy contributing to the documentation of getting the latest version, you will need to get Ruby and some associated tools.

You will need:

  1. The Ruby programming language

    1. Rubygems for updating ruby.

    2. bumdler for managing updates and making sure scripts are up to date.

    3. RubyDev kit which is needed for some other Ruby packages.

    4. asciidoctor for making notes, documentation and books.

    5. Ruby DevKit which is used by some Ruby extensions.

  2. In addition you will need Node.js for some of the Ruby tools to work.