GMT.jl: Generic Mapping tools Library Wrapper for Julia

GMT.jl

Julia wrapper for the Generic Mapping Tools GMT

The Generic Mapping Tools, GMT, is an open source collection of tools for manipulating geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, etc.) and producing PostScript illustrations ranging from simple x–y plots via contour maps to artificially illuminated surfaces and 3D perspective views. This link will take you to an impressive collection of figures made with GMT

This wrapper works with GMT6.1.0 and above and it is intended not only to access to GMT from within the Julia language but also to provide a more modern interface to the GMT modules. For example, instead of using the GMT classic syntax to do a line plot:

gmt psxy filename -R0/10/0/5 -JX12 -W1p -Ba -P > psfile.ps

one can simply do:

plot("filename", show=true)

or, more verbose but easier to read

coast(region=:global, proj=:Winkel, frame=:g, area=10000,
      land=:burlywood4, water=:wheat1, show=true)

instead of

gmt coast -Rd -JR12 -Bg -Dc -A10000 -Gburlywood4 -Swheat1 -P > GMT_winkel.ps

to show

Install

] add GMT

A word of warning about the installation. It is recommended that you install the GMT program in your system as explained bellow. If you do this then the GMT.jl wrapper will be able to find it. However, if you don't care about disk space usage and some extra >4 GB are no worries for you then on Unix (Mac and Linux) if the wrapper doesn't find GMT, it will install one automatically via Conda. On Windows the installation is done with the Windows installer and no such huge waste takes place. One may also force the automatic installation by setting the environment variable FORCE_INSTALL_GMT

Windows64 Install the GMT6 version

Windows32 ..._win32.exe

Unix

Follow instructions at https://github.com/GenericMappingTools/gmt/blob/master/INSTALL.md

Since GMT produces PostScript you need a PS interpreter. Windows installer comes with ghostcript but on Mac/Linux you need to:

Install Ghostscript and ghostview at https://ghostscript.com/releases/gsdnld.html

Using

The GMT Julia wrapper was designed to work in a way the close as possible to the command line version and yet to provide all the facilities of the Julia language. In this sense, all GMT options are put in a single text string that is passed, plus the data itself when it applies, to the gmt() command. However, we also acknowledge that not every one is comfortable with the GMT syntax. This syntax is needed to accommodate the immense pool of options that let you control all details of a figure but that also makes it harder to read/master.

To make life easier we provide also a new mechanism that use the GMT module name directly and where the program's options are set via keyword arguments. While the monolotic way of using this package is robust and keeps being updated to latestes GMT developments, this By modules alternative is a Work in Progress (several of the GMT supplements were not ported yet) and some things may not work yet. So all help is most than wellcome.

Documentation and Examples

Credits

A lot of the GDAL interface functions rely on code from GDAL.jl by Martijn Visser and ArchGDAL.jl by Yeesian Ng, released under the MIT license.

Download Details:

Author: GenericMappingTools
Source Code: https://github.com/GenericMappingTools/GMT.jl 
License: View license

#julia #tools #visualization 

What is GEEK

Buddha Community

GMT.jl: Generic Mapping tools Library Wrapper for Julia

GMT.jl: Generic Mapping tools Library Wrapper for Julia

GMT.jl

Julia wrapper for the Generic Mapping Tools GMT

The Generic Mapping Tools, GMT, is an open source collection of tools for manipulating geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, etc.) and producing PostScript illustrations ranging from simple x–y plots via contour maps to artificially illuminated surfaces and 3D perspective views. This link will take you to an impressive collection of figures made with GMT

This wrapper works with GMT6.1.0 and above and it is intended not only to access to GMT from within the Julia language but also to provide a more modern interface to the GMT modules. For example, instead of using the GMT classic syntax to do a line plot:

gmt psxy filename -R0/10/0/5 -JX12 -W1p -Ba -P > psfile.ps

one can simply do:

plot("filename", show=true)

or, more verbose but easier to read

coast(region=:global, proj=:Winkel, frame=:g, area=10000,
      land=:burlywood4, water=:wheat1, show=true)

instead of

gmt coast -Rd -JR12 -Bg -Dc -A10000 -Gburlywood4 -Swheat1 -P > GMT_winkel.ps

to show

Install

] add GMT

A word of warning about the installation. It is recommended that you install the GMT program in your system as explained bellow. If you do this then the GMT.jl wrapper will be able to find it. However, if you don't care about disk space usage and some extra >4 GB are no worries for you then on Unix (Mac and Linux) if the wrapper doesn't find GMT, it will install one automatically via Conda. On Windows the installation is done with the Windows installer and no such huge waste takes place. One may also force the automatic installation by setting the environment variable FORCE_INSTALL_GMT

Windows64 Install the GMT6 version

Windows32 ..._win32.exe

Unix

Follow instructions at https://github.com/GenericMappingTools/gmt/blob/master/INSTALL.md

Since GMT produces PostScript you need a PS interpreter. Windows installer comes with ghostcript but on Mac/Linux you need to:

Install Ghostscript and ghostview at https://ghostscript.com/releases/gsdnld.html

Using

The GMT Julia wrapper was designed to work in a way the close as possible to the command line version and yet to provide all the facilities of the Julia language. In this sense, all GMT options are put in a single text string that is passed, plus the data itself when it applies, to the gmt() command. However, we also acknowledge that not every one is comfortable with the GMT syntax. This syntax is needed to accommodate the immense pool of options that let you control all details of a figure but that also makes it harder to read/master.

To make life easier we provide also a new mechanism that use the GMT module name directly and where the program's options are set via keyword arguments. While the monolotic way of using this package is robust and keeps being updated to latestes GMT developments, this By modules alternative is a Work in Progress (several of the GMT supplements were not ported yet) and some things may not work yet. So all help is most than wellcome.

Documentation and Examples

Credits

A lot of the GDAL interface functions rely on code from GDAL.jl by Martijn Visser and ArchGDAL.jl by Yeesian Ng, released under the MIT license.

Download Details:

Author: GenericMappingTools
Source Code: https://github.com/GenericMappingTools/GMT.jl 
License: View license

#julia #tools #visualization 

PETSc.jl: Julia Wrappers for Petsc Library

PETSc

This package provides a high level interface for PETSc, enabling the use of PETSc as an AbstractArray. A low level interface is also available in the submodule PETSc.C.

This package requires the MPI.jl package be installed. Once it is installed you should be able to run both Julia and Petsc in parallel using MPI for all communication. The testing verifies that PETSc can be used both serially and in parallel.

To use the package, simply put using PETSc at the top of your Julia source file. The module exports the names of all the functions, as well as the PETSc data type aliases and constants such as PETSC_DECIDE.

In general, it is possible to run PETSc in parallel. To do so with 4 processors, do:

mpirun -np 4 julia ./name_of_file

Note that this launches 4 independent Julia processes. They are not aware of each other using Julia's built-in parallelism, and MPI is used for all communications.

To run in serial, do:

julia ./name_of_file

Even when running serially, the MPI.jl package must be installed.

An example of using a Krylov subspace method to solve a linear system is in test/test_ksp.jl, which solves a simple system with a Krylov subspace method and compares the result with a direct solve using Julia's backslash operator. This works in serial and in parallel. It requires some variables declared at the top of runtests.jl to work.

To do:

  • Make the script for building PETSc more flexible, e.g. allowing more configuration options like building BLAS or LAPCK, while ensure it remains completely autonomous (needed for Travis testing)
  • Wrap more KSP functions

Status

Vector

The AbstractArray for PetscVec is implemented. Some additional PETSc BLAS functions are wrapped as well.

Matrix

The AbstractArray interface for PetscMat is implemented. Preallocation is supported through optional keyword arguments to the matrix constructor or the setpreallocation function. It possible to set multiple values in the matrix without intermediate assembly using the assemble function or by setting the Mat object field assembling to false and calling setindex repeatedly.

KSP

Just enough KSP functions are implimented to do a GMRES solve. Adding more functionality is the current priority.

Directory Structure

/src : source files. PETSc.jl is the main file containing initialization, with the functions for each type of Petsc object in its own file. All constants are declared in petsc_constants.jl.

/src/generated: auto generated wrappers from Clang.jl. Not directly useful, but easy to modify to make useful

/test : contains runtest.jl, which does some setup and runs all tests on all three version of Petsc currently supported. Tests for each type of Petsc object (mirroring the files in /src) are contained in separate files.

/deps : builds Petsc if needed. See description below

Building PETSc

Building the package will build build the 3 versions of PETSc in the /deps directory, and writes the file lib_locations.jl to the /src/generated directory to tell the package the location of the libraries. Note that this builds the debug versions of PETSc, which are recommended to use for all development. If you wish to do high performance computations, you should build the optimized versions of the library. See the PETSc website for details.

Installing MPI.jl

This package requires MPI.jl, although it is not listed in the REQUIRE file because that would download the release version of MPI.jl, which does not work. Instead, you must use the master branch. After you have an MPI implementation installed, Pkg.build("Petsc") will install it and then PETSc, according to the description above. If you wish to install it manually, do:

  Pkg.clone("MPI")
  Pkg.build("MPI")

Auto Generation Notes

PETSc uses preprocessor variables to decide what code to include when compiling the library. Clang does not know what preprocessor variables were defined at compile time, so it does not correctly detect the typealiases PetscScalar, PetscReal, etc. To correctly autogenerate wrappers, the proper variables must be passed to Clang with the -D switch. Note that users will not need to generate their own wrappers because they have already been generated and commit to the repo.

Download Details:

Author: Stevengj
Source Code: https://github.com/stevengj/PETSc.jl 
License: View license

#julia #wrapper 

LibHealpix.jl: A Julia Wrapper Of The Healpix Library

LibHealpix.jl

LibHealpix.jl is a Julia wrapper of the Healpix library.

The Healpix library defines a pixelization of the sphere that is equal-area (each pixel covers the same area as every other pixel) and isolatitude (pixels are arranged along rings of constant latitude). Healpix was born from the need to rapidly compute angular power spectra for Cosmic Microwave Background experiments (ie. WMAP and Planck) and is widely used in astronomy and astrophysics.

Installation

Pkg.add("LibHealpix")

Examples

OVRO-LWA Sky Map

Dust Map

Halpha Map

Documentation: http://mweastwood.info/LibHealpix.jl/stable/

Download Details:

Author: mweastwood
Source Code: https://github.com/mweastwood/LibHealpix.jl 
License: View license

#julia #wrapper #astronomy 

Qlab.jl: Generic Lab tools in Julia

Qlab.jl

Data manipulation and analysis tools tailored for quantum computing experiments in conjunction with Auspex. Currently working with Julia v1.0.

Installation

(v1.3) pkg> add https://github.com/BBN-Q/Qlab.jl

The code base also uses some system tools and python libraries for building libraries and plotting data with PyPlot.jl. You'll want to make sure your system has these.

In CentOS:

yum -y install epel-release
yum install gcc gcc-c++ make bzip2 hdf5 libaec libgfortran libquadmath

In Ubuntu/Debian:

apt-get install gcc g++ gcc-7-base make libaec0 libgfortran4 libhdf5-100 libquadmath0 libsz2

Python

You'll need a working version of PyPlot. In some cases the package manager has trouble getting this right on all systems/OSs. If you run into issues, we recommend using Conda.jl manually:

using Pkg
Pkg.add("PyCall")
Pkg.add("Conda")
ENV["PYTHON"] = ""
Pkg.build("PyCall")
using Conda
Conda.add("matplotlib")
Conda.add("seaborn")
Pkg.add("PyPlot")

In most cases, Julia should take care of this for you.

Other dependancies

Qlab.jl depends on several other Julia packages that have biniary dependencies. These should mostly be taken care of by the package manager. One important exception is HDF5 and its libhdf5 dependancy. This library manages the handling of HDF5 files and is currently maintained for backwards compatibility. The version of libhdf5 which produced any data files you want to analyze must match the library version used to create the files. You may need to add the path the the right version of libhdf5 to the Libdl path in Julia and rebuild HDF5:

push!(Libdl.DL_LOAD_PATH, "/opt/local/lib")
Pkg.build("HDF5")

where /opt/local/lib is the path to the correct version of libhdf5. See the documentation from HDF5.jl for more details. Currently only version of hdf5 1.8.2 - 1.8.17 are supported. If you're not planning to use HDF5 files, you shouldn't have to worry about the library versions matching.

Copyright

Raytheon BBN Technologies.

Download Details:

Author: BBN-Q
Source Code: https://github.com/BBN-Q/Qlab.jl 
License: View license

#julia #tool 

Sunny  Kunde

Sunny Kunde

1597848060

Top 12 Most Used Tools By Developers In 2020

rameworks and libraries can be said as the fundamental building blocks when developers build software or applications. These tools help in opting out the repetitive tasks as well as reduce the amount of code that the developers need to write for a particular software.

Recently, the Stack Overflow Developer Survey 2020 surveyed nearly 65,000 developers, where they voted their go-to tools and libraries. Here, we list down the top 12 frameworks and libraries from the survey that are most used by developers around the globe in 2020.

(The libraries are listed according to their number of Stars in GitHub)

1| TensorFlow

**GitHub Stars: **147k

Rank: 5

**About: **Originally developed by researchers of Google Brain team, TensorFlow is an end-to-end open-source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, and community resources that lets researchers push the state-of-the-art research in ML. It allows developers to easily build and deploy ML-powered applications.

Know more here.

2| Flutter

**GitHub Stars: **98.3k

**Rank: **9

About: Created by Google, Flutter is a free and open-source software development kit (SDK) which enables fast user experiences for mobile, web and desktop from a single codebase. The SDK works with existing code and is used by developers and organisations around the world.


#opinions #developer tools #frameworks #java tools #libraries #most used tools by developers #python tools