[ANN] SimpleFeatures.jl: Working with simple feature GIS data in Julia

Hi everyone!

I’m excited to announce a new package called SimpleFeatures.jl. This package is used to work with vector GIS data in Julia.

This package:

  • Works with feature data as a DataFrame.

  • Stores coordinate reference system (crs) info with the DataFrame and uses it automatically

  • Uses a custom geometry type to interface with GDAL and GEOS for fast I/O and operations

SimpleFeatures.jl was inspired by the R package sf and aims to provide similar basic functionality - but much faster, of course!

Check out the docs for more info about available functions and how it works.

I am very new to Julia and would appreciate any feedback or contributions!


Adam, It’s good to hear of efforts to bring into Julia functionality along the lines of R’s sf package. You might want to look at JuliaGeo and especially at GeoInterface. I suspect your package will find overlap and complementarity with these others.

1 Like

Hi Adam,

Welcome to the community! This is amazing and I also saw your website - it would be wonderful to have the sort of work you are doing in the Julia community and I am sure we all would love to support you! As you say that you are also new, to @George9000 's point, please join us in Slack too and check out the #geo channel! Hope to see you around. :slight_smile:

Link: The Julia Language Slack

~ tcp :deciduous_tree:

1 Like

Thanks, and joined the Slack!

Agreed, JuliaGeo is great and looking forward to joining the community on Slack! SimpleFeatures relies on many of those packages - it uses some modified code for I/O from GeoDataFrames.jl, GeoInterface for some miscellaneous calcs, LibGEOS.jl for operations, and ArchGDAL.jl for operations and geometry handling.

The “custom geometry type” SimpleFeatures uses is just a struct that contains the well-known binary (WKB) and an abbreviated well-known text (WKT) string for display. SimpleFeatures just converts the WKB to ArchGDAL geometries that then follow the GeoInterface standard. There’s a function in SimpleFeatures that does this and converts a SimpleFeature object to a GeoDataFrame

Hi, welcome, and thanks for sharing your work. I’m impressed how you managed to put this together, building on and extending existing functionality, especially as a newcomer to the community!

May I ask, why did you decide to license this package under the GPL? It would be nice to be able to learn from and perhaps use parts of the code to improve the MIT licensed packages it depends on, but I’m hesitant due to the GPL and virality.

Thanks, @visr! I appreciate all of your work on JuliaGeo packages!

I didn’t realize that the license would be an issue. GPL is just what I have typically used for my projects. I am happy to change it to the MIT license so it can be more useful! I’ll submit a patch release soon with that change.