It started snowing at about 9 p.m. last night and this morning we woke up to a 10 cm blanket of snow. Not enough to cause any damage, but plenty enough to play in.
One of the neat weather features on the Front Range of Colorado is the dramatic warm up before a winter storm. A strong trough or closed low (like a hurricane) imports warm air from the south before the system hits. We experienced this today. The weather for Arabelle's 10:30 a.m. soccer game was beautiful: calm, sunny, 15°C.
Arabelle is playing 11 on 11 U14 soccer this fall and plays the holding midfielder role for her team. I and the other parents watched her team win 3-1 under blue skies, knowing that it's going to be much different tonight. We got a little snow Wednesday, but this weekend's storm is more serious.
After the game, I ran one of my favorite foothill trail loops and then came back and got the garden ready for winter. I picked herbs and green tomatos, cut down plants that aren't going to survive a freeze, and tossed them in the compost. I brought our rosemary bush inside, put away our rain barrel, disconnected all the hoses, and folded up and stashed the patio furniture.
Bring it, Winter!
I tried it out for the first time today and although I expected Rasterio to install and work – I've tried very hard to make it usable in this kind of application – it was still gratifying to see a little washed out thumbnail of band 1 of Landsat 8's land imager in my Colab notebook.
A 1.8.0 release of Fiona, OGR's new/nimble/nother API for Python, is one of my work goals for the last quarter of 2018. In fact, I'm going to try to wrap it up by Halloween. I published wheels for 1.8a3 to PyPI on Monday and would be much obliged if you would try them out: pip install fiona==1.8a3.
A year and a half ago, I blogged about the publication of RFC 8142 and some of the small complications using sequences of GeoJSON texts delimited by ASCII record separators (RS, or \x1e). At the time there weren't any implementations other than Fiona, Tippecanoe, jq, and GNU parallel.
The situation is dramatically better this week, largely due to a blog post about non-standard GeoJSON sequences. Even Rouault has added a GeoJSONSeq driver for GDAL 2.4. This makes RFC 8142 a real thing for the open source GIS community. Once this version gets deployed widely, gigantic and unweildly GeoJSON feature collection blobs will be passé.
I've also written a new Python decoder and encoder for JSON text sequences based on my experiences in developing this feature for the Fiona library: https://pypi.org/project/jsonseq. I'm using language features only available in Python 3.5 or newer, type annotations in particular. It's been refreshing to not even think about Python 2 compatibility. If you wanted to use these classes in an older Python application, please vendor it. It's only a few lines of code and is pretty much complete. I learned a little more about the Python standard library's JSON decoder and encoder, too.
I tweeted a link to this post, which makes me feel like a tool, but it's a small price to pay towards burying multi-GB GeoJSON file sharing.
When I published a JSON-LD context for GeoJSON data in 2017, I noted that GeoJSON coordinates could not be described using JSON-LD 1.0 syntax, but that the situation might be addressed by a JSON-LD 1.1. Well, there's a JSON-LD 1.1 draft now, and lists of lists are to be fully supported. There are even GeoJSON examples in the draft, which is nice to see.
From the announcement:
NumFOCUS is pleased to announce the newest addition to our fiscally sponsored projects: conda-forge.
Conda-forge builds and distributes software packages, specializing in the hard-to-build or unique packages that often arise in a scientific computing context. Conda-forge is community-driven and community-curated. This means that no package is too domain-specific and all packages undergo review to ensure quality and interoperability.
The conda-forge GitHub organization contains repositories of conda recipes. Thanks to some awesome continuous integration providers (AppVeyor, CircleCI and TravisCI), each repository, also known as a feedstock, automatically builds its own recipe in a clean and repeatable way on Windows, Linux and OSX.
Conda-forge packages include shapely, fiona, and rasterio.
Congratulations, Filipe and Phil!
In the run up to releasing Rasterio 1.0 I used Twitter more than I had in the months before because how else are people going to find out about the project's big milestone? Since then I've tried to use it very little. Twitter users' obsession with egomaniacs like Trump and Musk is super irritating, and Twitter's efforts to make the site a safe space for horrible people like Alex Jones is digusting. I really don't want anything to do with it anymore.
I miss people who I followed on Twitter, though. Write a little more on your own sites, people. I promise I'll read.
I finished in 2:26:04, number 130 of 317 finishers. This was 2 minutes and 40 seconds slower than my time in 2015. Considering how many workouts I missed in August while on vacation at sea level and the extra pounds I'm dragging around, I have to be content. I am content. I took it extra easy on the climb, descended quickly, and went not rapidly but steadily on the rolling trail to the finish. I'm definitely better at running now than I was 3 years ago, even if I'm not in quite as good form at the moment.
Congratulations to Frank Pipp, the winner at 1:32:03, and Ruth Waller-Liddle, the first woman at 1:52:43. More congratulations to Nick and the Gnarr Runners for executing another fun and well-run race.
I don't have another race on my calendar, but am inspired to find another in October or November.