Follow

I’ve just published Potato, a new pansharpening package. It aims to render certain kinds of satellite imagery more clearly and accurately than what’s for sale and on satellite maps today: github.com/celoyd/potato/

It’s under 50k parameters, comes with a working checkpoint, runs on a home computer, and is specialized on WorldView-2/3 ARD imagery. It does a few things I haven’t noticed before in the literature: for example, using all the visible multispectral bands to make its visible colors.

I’m not expecting most people to know what pansharpening is, or to have a pressing need to do it themselves. But it’s an interesting problem, and I hope it’s interesting to learn about. It’s taken a lot of inspiration from across domains (by movie colorists, for example).

I’ve been working on this occasionally for years. It’s been a weekend morning here, a notebook page on the bus there, week-long sprints between contracts, etc. Eager to learn what hugely embarrassing bugs I’ve left in it.

Show thread

It’s got a lot of moving parts and I wanted to make it intelligible to several audiences, so the documentation is a bit much at times.

Show thread

There’s a lot in the repo, but I’m happy to say the core code is small and efficient. You can pansharpen several megapixels/second on an ordinary CPU, and somewhere > 10 Mpx/s on a gaming rig.

It's all licensed CC BY-NC, like its training data: Maxar/Vantor’s Open Data Program (h/t @marcpfister). This is imagery for disaster response, and a goal of Potato is to publicize that data, and similar data, and to encourage work that makes it easier to use.

Show thread

The most important part of Potato for me is its colors. For more than a decade, in several workplaces, I’ve griped about how standard pansharpening renders colors. It’s been gratifying to show what I think is a better way.

So if you work with satellite imagery, I hope Potato makes good holiday reading. If you don’t, I hope it gets you interested. And if you’re hiring for skills shown in it (chewy, cross-disciplinary spatial/visual/etc. work), drop me a line.

Show thread

@jenlowe This is probably weird to say, but you were one of the people I had in mind as a reader of the documentation.

@vruba I found the repo via @dymaxion 's link, and as an interested outsider I *love* the documentation. More projects as forms of argument/essays on interesting topics!

@vruba it's such a delightful read! I also found it via @dymaxion's post and I particularly appreciate your perspective on crafting in the shadow of kaiju ❤️

@vruba It's great to see the open data holdings get put to good use. It's also pleasing to see the payoff of creating data that is organized, sorted, and described (with STAC).

@marcpfister It’s a real pleasure to work with data that’s both (1) good in itself but also (2) sensibly arranged and documented.

@vruba I don’t know anything about this but I do love the presentation of it: name, description, README structure. Has all of the signals of something I would really appreciate if that was my thing.

@vruba I wrote that when I had only skimmed the project. Little did I realize that you wrote the README _for_ me. Great technical writing that got me up to speed. If that was not painstaking for you to produce then consider me jealous.

@kyle I really appreciate that. I wrote the kind of thing I would want to read, is the short version. And although I spent a reasonable number of hours on it, I think the secret is really that it was slow – the hours were spread over years. Unfortunately I think the organization suffers from my lack of outsider perspective.

@vruba I felt adequately progressively disclosed :)

@vruba congratulations on publishing this, it looks like a major work! Also I like this clear statement:

intended as a one-and-done demonstration, not as a continually improving pansharpening package. It’s born in bug-fix–only mode
Good for you!

@nelson Thank you! And yeah, I do not want to become an amateur community manager ;)

Sign in to participate in the conversation
Horsin' Around

This is a hometown instance run by Sam and Ingrid, for some friends.