Coder Social home page Coder Social logo

mdal's Introduction

Build Status CircleCI Coverage Status

MDAL

Mesh Data Abstraction Library

see Unstructured Mesh Layers

Supported Formats

You can use MDAL to load the following file formats:

  • 2DM: Mesh representation of various various hydrodynamic modelling packages (e.g. BASEMENT, TUFLOW)
  • NetCDF: Generic format for scientific data. Examples can be found here
  • GRIB: Format commonly used in metmastereorology. Examples can be found here
  • XMDF*: As an example, hydraulic outputs from TUFLOW modelling package
  • XDMF: As an example, hydraulic outputs from BASEMENT 3.x modelling package
  • DAT: Outputs of various hydrodynamic modelling packages (e.g. BASEMENT, HYDRO_AS-2D, TUFLOW)
  • 3Di: 3Di modelling package format based on CF Conventions
  • UGRID: Unstructured Grid format based on CF Conventions
  • FLO-2D: Outputs of the FLO-2D modelling package
  • Selafin/Serafin: Outputs of the TELEMAC 2D hydrodynamic modelling package
  • HEC-RAS: Outputs of the HEC-RAS modelling package
  • SWW: Outputs of the ANUGA modelling package
  • SAGA FLOW**: Rasters in the SAGA flow direction format

* Data lazy loaded

** Formats can be preprocessed using QGIS Crayfish/Mesh processing algorithm to one of supported formats

Development

Coding standards & Contribution

MDAL is open-source project and all contributions to either documentation, format support, testing or code are more than appreciated. Any change to the code must go through Pull Request, followed by review of one of the MDAL core developer.

To be able to accept a pull request, please verify that:

  • code follows QGIS coding style
  • code is properly unit-tested with a set of small test files under tests/data/<format> (code coverage > 90%)
  • code is reasonably documented and easy to read
  • code compiles without any compilation warnings
  • no dead-code (e.g. unused functions) or commented out code
  • all new code or new dependencies (e.g. libraries) have GPLv2 compatible license
  • all tests pass

Build

Windows

For 64-bit version:

  • Install Microsoft Visual Studio 2017
  • Install OSGeo4W (64bit) to C:\OSGeo4W64
  • see win build script

Linux

install dependencies for drivers

sudo apt-get install libgdal-dev libhdf5-dev libnetcdf-dev libxml2-dev

and use cmake to generate build system

mkdir build;cd build
cmake -DCMAKE_BUILD_TYPE=Rel -DENABLE_TESTS=ON ..
make

MacOS

First you need to install homebrew and osgeo4mac dependencies, see osx install script

To build, create build system with cmake and make sure you use dependencies from homebrew and not system ones

mkdir build;cd build
export CMAKE_PREFIX_PATH=/usr/local/opt/gdal2
cmake -DCMAKE_BUILD_TYPE=Rel -DENABLE_TESTS=ON ..
make

Tests

run ctest command in build directory ctest -VV

Code syntax

format code:

cd scripts
./mdal_astyle.sh `find .. -name \*.h* -print -o -name \*.c* -print`

or use git pre-commit hook

cd MDAL
ln -s ./scripts/mdal_astyle.sh .git/hooks/pre-commit

mdal's People

Contributors

landryb avatar michelk avatar nyalldawson avatar peterpetrik avatar slarosa avatar vcloarec avatar wonder-sk avatar

Watchers

 avatar  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.