Here at Arturo.ai we are big supporters of the Open Source Software (OSS) community. While I currently serve as Chief Technology Officer of Arturo, I am proud to have financially supported a number of OSS efforts during my previous role at the National Geospatial-Intelligence Agency (NGA). Additionally, I had the great opportunity to participate in the Free and Open Source Software for Geospatial (FOSS4G) community and conferences, to serve on the original planning committee for WhereCamp 5280, and to act as a Charter Member of OSGeo. Participating in, supporting, and gaining new friends and colleagues within the OSS community has been one of the great highlights of my career. As I say all this, I should share that the Arturo team and I are big supporters/users of Open Source Standards too. Standards like those from the Open Geospatial Consortium (OGC) and other de facto standards from the OSS and geospatial community have been critical building blocks of solutions I’ve built throughout my career and continue to underpin our work at Arturo.
Over the last few years one of the most exciting standards I’ve seen emerge is the Spatio-Temporal Asset Catalog (STAC). STAC is a standard aimed at common metadata and API mechanics to search and access geospatial data. If you ever had to spend a significant amount of time trying to gather geospatial data from multiple sources and time periods you’ll understand this as an amazing step forward, too. As I’ve watched the discussion around STAC evolve it became clear to me that this would be part of our next generation geospatial services at Arturo. We are all thrilled about a truly cloud-native geospatial solution and our team has worked diligently to implement tools that will allow us to realize the benefits of STAC across our architecture.
In 2019, we had the good fortune of hiring @geospatialjeff and he immediately hit the ground running with our team. Prior to joining Arturo he had already been very involved in the STAC community. You can take a look at his GitHub account to see some of the projects he started to help grow and implement STAC. Upon joining the company he helped our team quickly start exploring the ways that various geospatial standards like STAC, COG, “OGC API — Features”, and “OGC API — Tiles” could be leveraged to advance our geospatial architecture and services. Our team began exploring the myriad of geospatial OSS projects that would be able to help us (the list is too long to go into here). We also found that there were opportunities to build OSS solutions that would further our needs and allow us to contribute back to the community. I am thrilled to again be able to contribute back to the OSS community, the open standards community, and especially the geospatial community here at Arturo.
Our preliminary testing and implementation has shown great promise. We have been exploring STAC internally and have seen substantial simplification of our geospatial services. This has provided significant benefits to our ability to quickly create and consume geospatial data within our microservices. We have also explored STAC with some of our data partners and the results have been tremendous. We identified significant performance improvements over previous geospatial web service standards. The ease of data discovery is also an immense improvement. On-demand data discovery and ingest from multiple sources are key building blocks of our architecture so this is an exciting advancement. We firmly believe that STAC will continue to revolutionize how we discover and access geospatial data from an ever increasing range of sources.
We’ve been driving in this direction since last summer and are now ready to begin sharing what we’ve been working on. We will release a number of OSS repositories over the course of the year, each one building upon the previous. The first project we will release is stac-pydantic which appropriately contains pydantic data models for the STAC spec and provides a declarative and customizable interface for validating catalogs, collections, and items with python type annotations. Next up is a PostGIS-backed, modern, STAC-compliant API built with FastAPI and sqlalchemy. And, last but not least, we will launch an asynchronous tile server for Cloud Optimized GeoTiffs (COG) specifically designed to dynamically render map tiles from a STAC API through “OGC API — Tiles”. These are all projects that we use internally at Arturo to enhance our abilities and we hope they benefit the community as well. Going forward we will share all updates and enhancements to these repositories in GitHub in hopes of helping others take advantage of STAC as well.