Maxar usage over the last year
Posted by pnorman on 8 July 2023 in English. Last updated on 9 July 2023.I was curious about the usage of Maxar over the last year, so did some quick work to see where it was used. To start, I used a Python 3 version of ChangesetMD to load the latest changesets into PostgreSQL, using the -g option to create geometries.
I then, with a bit of manual work, identified the changesets of the last year are those between 122852000 and 137769483. Using this, and knowledge of tags normally used with maxar, I created a materialized view with just the Maxar changesets
CREATE MATERALIZED VIEW maxar AS
SELECT id,
num_changes,
st_centroid(geom)
FROM osm_changeset
WHERE id BETWEEN 122852000 and 137769483
AND (tags->'source' ILIKE '%maxar%' AND tags->'imagery_used' ILIKE '%maxar%');
This created a table of 2713316 changesets, which is too many to directly view, so I needed to get it by country.
I did this with the border data from country-coder
curl -OL 'https://raw.githubusercontent.com/rapideditor/country-coder/main/src/data/borders.json'
ogr2ogr -f PostgreSQL https://wiki.openstreetmap.org/wiki/Tag:PG:dbname=changesetmd borders.json
This loaded a quick and dirty method of determining the point a country is in into the DB, allowing me to join the tables together
SELECT COALESCE(iso1a2, country), COUNT(*)
FROM maxar JOIN borders ON ST_Within(maxar.st_centroid, borders.wkb_geometry)
GROUP BY COALESCE(iso1a2, country)
ORDER BY COUNT(*) DESC;
| coalesce | count |
|---|---|
| IN | 253789 |
| ID | 138214 |
| TR | 131282 |
| BR | 121062 |
| SV | 102280 |
| GT | 100412 |
| TZ | 86890 |
| RU | 71243 |
| US | 69600 |
| BD | 60622 |
| ZM | 60130 |
| CN | 58226 |
| NG | 55355 |
| SY | 49353 |
| PH | 46432 |
| CD | 45216 |
| AE | 40728 |
| MW | 40710 |
| PE | 37037 |
| SE | 33762 |
| UA | 33664 |
| MX | 33012 |
| HN | 32385 |
| NP | 31692 |
| KE | 30045 |
| MY | 27224 |
| RO | 26477 |
| MG | 24456 |
| ZA | 24262 |
| CO | 23876 |
| BY | 20925 |
| AR | 20264 |
| VN | 20203 |
| GB | 19687 |
| DE | 19613 |
| UG | 19534 |
| LY | 18980 |
| KZ | 18037 |
| TH | 17879 |
| SA | 17270 |
| PK | 17161 |
| EG | 16848 |
| ET | 16406 |
| AU | 16134 |
| IQ | 15819 |
| AF | 15404 |
| IT | 15283 |
| SO | 14745 |
| SD | 14346 |
| CA | 14223 |
| EC | 13919 |
| ML | 13417 |
| QA | 12379 |
| CL | 11902 |
| HU | 11284 |
| IR | 10899 |
| TG | 10533 |
| TL | 10364 |
This usage includes a period of time at the end where Maxar was not working, which is still the case. It’s also a very quick and dirty method designed to minimize the amount of time I had to do stuff, at the cost of spending more computer time. ChangesetMD is unmaintained and loading all the changesets is slow, but I already knew how to use it, so it didn’t take me much time.
Discussion
Comment from Minh Nguyen on 8 July 2023 at 06:25
Thanks for running these numbers. It helps to get a sense of where the missing imagery will be most acutely felt. Another measure of that would be the countries with the greatest share of Maxar-based changesets out of the total number of changesets.
Comment from Stereo on 8 July 2023 at 15:36
@Minh I had the same idea for the measure, and have commented here:
https://community.openstreetmap.org/t/maxar-imagery-not-working-was-maxar-is-blurred-in-id-and-other-similar-topics/100524/42
Comment from PierZen on 10 July 2023 at 18:37
@pnorman revision to find ‘%maxar%’ in either the source or imagery_used : ((tags->’source’ ILIKE ‘%maxar%’) OR (tags->’imagery_used’ ILIKE ‘%maxar%’))