Sometimes a simple tool is all you need. In the age of AI it is AI this and AI that, but here is a tool that does what it needs to do, no fuss. The tool simply reads in a ‘.dm’ Datamine Studio binary file and outputs to either a CSV or Apache Arrow Parquet file. It is a simple CLI. Reminiscent of the old but useful GSLIB geostatistics Fortran library. It can be used as a one off or in a workflow or called as an agentic AI tool.

It is a tool that is useful for directly working with all your mining data locked up in the ‘.dm’. Useful for Geologists, Mining Engineers, or Data Scientists who need the data, or anyone else working with those files.

It is written in Go.

Why does this tool exist?

Years ago I needed to access the data held inside the ‘.dm’ files. I needed a quick way to extract that data without needing the Datamine Studio software. I needed to integrate that task inside my R workflows. It didn’t exist, so I created it. Just like the Go version. But the R version is slow, very slow for large block models. Hence the need for speed, the need for C (now redundant). And now Go makes it easy to maintain, improve, and compile and I can integrate it into my other utilities and Go workflows.

Why did I pick Go?

Because I wanted to, because I needed to. Because:

  • It has concurrency.
  • It compiles very quickly.
  • It is cross-platform.
  • It is a modern language.
  • It has C style syntax.
  • It is easy and quick to learn.
  • It has garbage collection (GC) memory management.
  • It can be used for a cloud API.
  • It has concurrency (yes I doubled up here)

And it allows me to build solutions quickly. The language gets out of the way. Over 30 years I have programmed in C, C++, C#, Fortran, Cobol, Java, JavaScript, F#, Python, and R. I even tried Rust. But Go is my favourite as it allows me to solve problems quickly and efficiently.

The source code is available inside mining-ds-vault/tools-cli/dmconv. Binary files for Mac OS and Windows are also available and can be downloaded from the release page for the mining-ds-vault repos.

Explore the code.

Also inside the Go source code folder are two R versions that I produced a long time ago. They are found inside the folders ’legacy/’ and ‘specification/’. Legacy for the original pure R code. Specification for the old C rewrite that was compiled to a DLL and called from R which formed the basis for the Go version.

More to come.