Prague-Colmar-Montpellier-London 2008

It's retrospective time! Ten years ago, my family, all four of us, went to Europe for the first time. Ruth had meetings in Prague and I had a meeting in London. In between, we did a little touristing in Alsace, scouted Montpellier for future sabbatical housing, and visited friends in England.

Arabelle and I at Staroměstské náměstí

I was back here 7 years later and wished I had Arabelle along.

Representing FOSS4G 2007

I think I might actually be from Alsace, because Colmar really felt like home.

This photo is one of the first that Arabelle ever took. Good ole PowerShot A520.

Our first home in the neighborhood of Montpellier was a little vacation trailer during the off season in Clapiers. On two sabbaticals we stayed in the city proper, but if we came back, maybe we'd would stay out in the country next time.

Arabelle going wild on the beach

Everybody has mixed feelings about Carnon plage, I think. There's no nature, and the development is kinda gross, but the sand and water is nice, and it's super close to the city. Ruth grew up at the beach in Southern California and felt "meh", but Arabelle and I were more like "waouh!"

Arabelle at Gare de Lyon

Good ole Gare de Lyon. We were just there two months ago. This was Arabelle's first TGV ride. We took an RER from here to Gare du Nord and then went under the channel to St. Pancras in London and then on to Swindon. Trains are the best way to travel.

Naptime in Bath, England

Bath is very touristy but also quite comfy. My family is not really from the Alsace, but from Southwestern Britain, and so I felt right at home in Bath.

In Swindon

Arabelle loved England because we had friends and our friends had cats.

Swindon Stone, Avebury

Gabby is linking the ancient world data

I went to London a few times when I was working at ISAW, but this was my first trip and my favorite. We stayed in a hotel on Drury Lane, and despite not seeing the Muffin Man, had a fun time exploring Covent Garden and Neal's Yard.

Fiona 1.8b1

Fiona 1.8b1 is in the cheese shop today while supplies last: There are changes since 1.8a3, none of them breaking. Please, if you can, run pip install fiona==1.8b1 to help test this prerelease.


  • Collection slicing has been deprecated and will be prohibited in a future version.

Bug fixes

  • Rasterio CRS objects passed to transform module methods will be converted to dicts as needed (#590).
  • Implicitly convert curve geometries to their linear approximations rather than failing (#617).
  • Migrated unittest test cases in and to the use of the standard data_dir and path_coutwildrnp_shp fixtures (#616).
  • Root logger configuration has been removed from all test scripts (#615).
  • An AWS session is created for the CLI context Env only if explicitly requested, matching the behavior of Rasterio’s CLI (#635).
  • Dependency on attrs is made explicit.
  • Other dependencies are pinned to known good versions in requirements files.
  • Unused arguments have been removed from the Env constructor (#637).


  • A with_context_env decorator has been added and used to set up the GDAL environment for CLI commands. The command functions themselves are now simplified.

A 1.8.0 final release is scheduled for the end of this month.

First Real Snow

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.

Winter is Coming

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.

Soccer in the foreground, snowy peaks in the background: Longs Peak (left) and Mummy Range (right).

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.

First snow on Wednesday.

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.

All the tomatos are countertop tomatos now.

Bring it, Winter!

Fiona 1.8.0 Final Push

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.

What's New in GeoJSON Text Sequences

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: 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.

Conda-forge is a NumFOCUS Sponsored Project

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!

Twitter Break

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.