Hello all,
I haven’t been active in Discourse but I’ve been working with Julia for scientific computing for quite a few years at this point.
I want to know what the interest is in a JuliaGeo project/effort to harmonize/shift the JuliaGeo ecosystem to allow the construction of a singular, unified package like R’s Terra
.
One of my big pet peeves (and barrier to full adoption) is that the geospatial ecosystem is not as robust, simple, and interactive as the R ecosystem with Terra. Right now, I feel the ecosystem is made up of disparate, and tricky to interoperate packages. For example, my current workflows for scientific computing are an elementary operation of cropping layered rasters (of different CRS) by an extent/polygon extent then transforming these into dataframes/arrays for further analysis. In R, this is five lines of code that are very easy to read and require only Terra. Additionally, Terra easily lets people throw a wall of stats and operations on vector and raster objects on top of these simple data manipulations.
In Julia this operation would require atleast two packages and knowing how to translate between the packages. In the case of GeoDataFrames and Rasters, it’s easy, but I’ve found Shapefile to be trickier, ArchGDAL is verbose, GeoInterface lacks higher operations, and there are lots of, imo redundant packages (such as GeoJSON.jl, Shapefile.jl, etc. AFAIK these can be handled into abstracted GDAL based workflows with little to no change in code). Additionally, the documentation for these packages are quite sparse and typically show limited “translations” between related packages.
Many R geospatial analysts I know typically load in and modify geospatial data using geospatial tools. Then they convert those to other datatypes for analysis, but in this process they take compiled, modified in place objects, and convert it to slow interpreted objects. They use R because of its simple interaction with these objects and extensive statistical libraries. They then complain, however, about slow analysis. In one advanced geospatial analysis project, I had to pull teeth to convince them to do the data processing in Julia because they did not know Julia. However, their R code would have taken 200 days of compute hours. Meanwhile, Julia took 20 with simple optimizations while preserving DataFrames, type flexibility, and code clarity that they realized was just as easy to read as R. There is a space here for moving analysts to faster Julia workflows.
I totally understand that Julia works best with small, concise modules. I totally understand that some of this is an adoption/skill issue. However, my sentiments echo those of other geospatial analysts I know. Additionally, a lot of the questions in this topic are quite elementary, which, to me, shows a potential barrier to adoption that is broader than my circle.
A wrapper to existing Julia packages or a ground up suite of packages leveraging Spat objects (Maybe something like “Spats.jl” that implements the spat
packages, then other small modules that operate on those objects) to match the Terra ecosystem could potentially help bring these analysts to Julia.
I want to know what the interest is in developing such a suite or wrapper to existing packages would be.