Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danlooo/dggrid-julia
Julia bindings for the DGGRID library
https://github.com/danlooo/dggrid-julia
Last synced: 7 days ago
JSON representation
Julia bindings for the DGGRID library
- Host: GitHub
- URL: https://github.com/danlooo/dggrid-julia
- Owner: danlooo
- License: agpl-3.0
- Created: 2023-04-13T09:32:29.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-08T10:37:06.000Z (over 1 year ago)
- Last Synced: 2024-11-25T16:37:28.823Z (2 months ago)
- Language: C++
- Homepage:
- Size: 4.7 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dggrid-julia
ddgrid-julia provides bindings for the Discrete Global Grid System [DGGRID](https://github.com/sahrk/DGGRID) written in C++ for directly accessing the functions and types in the Julia programming language.
Discrete Global Grid Systems (DGGS) tessellate the surface of the earth with hierarchical cells of equal area, minimizing distortion and loading time of large geospatial datasets, which is crucial in spatial statistics and building Machine Learning models.
## Get Started
This project is not intended to use directly.
Please look at the Julia package [DGGS.jl](https://github.com/danlooo/DGGS.jl) instead.
However, this library package can be installed in Julia with the following commands:```Julia
using Pkg
Pkg.add("dggrid_jll")
```## Development
This project is using [wrapit](https://github.com/grasph/wrapit), [CxxWrap.jl](https://github.com/JuliaInterop/CxxWrap.jl) and [libcxxwrap-Julia](https://github.com/JuliaInterop/libcxxwrap-Julia) to automatically generate Julia bindings for the C++ code of [DGGRID](https://github.com/sahrk/DGGRID).
It is the basis of the Julia package [DGGS.jl](https://github.com/danlooo/DGGS.jl).
Bindings generated by wrapit are stored in the files [`src/DGGRID.jl`](src/DGGRID.jl), [`src/jlDGGRID.cxx`](src/jlDGGRID.cxx) , and [`src/jlDGGRID.h`](src/jlDGGRID.h).[BinaryBuilder](https://github.com/JuliaPackaging/BinaryBuilder.jl) is used to deploy the binaries as a Julia package.
File [`src/build_tarballs.jl`](src/build_tarballs.jl) should be used as a starting point for deployment on [Yggdrasil](https://github.com/JuliaPackaging/Yggdrasil)Instead of accessing system shell calls, this wrapper approach allows to access the C++ functions directly within Julia using pointers.
This project is different from [DGGRID7_jll](https://github.com/JuliaBinaryWrappers/DGGRID7_jll.jl) which just provides the binaries of [DGGRID](https://github.com/sahrk/DGGRID) without the Julia bindings.
Earthly is used for building and testing the software.
Its [`Earthfile`](Earthfile) provides an overview about the architecture of this project.A copy of the file `LICENSE` must be also present in the directory `src` to be used by Binary Builder