First, I fetched all of the Argo data up through 2021 via ftp:
wget -r ftp://ftp.ifremer.fr/ifremer/argo
# wait a long time
tree ftp.ifremer.fr
└── ifremer
└── argoFirst, I fetched all of the Argo data up through 2021 via ftp:
wget -r ftp://ftp.ifremer.fr/ifremer/argo
# wait a long time
tree ftp.ifremer.fr
└── ifremer
└── argoI managed to iterate over Awkward Arrays and rasterize the NYC buildings as polygons. The spatialpandas code is pretty well integrated with the ragged data structures you've built; there's a lot of code that twiddles offset arrays. I couldn't use the build_polygon function directly, but ported over enough of it into my own Numba-compiled function to reproduce the output.
These are Matplotlib's imshow displays of images made by iterating over Awkward Arrays; the axes are flipped from the normal longitude, latitude because I'm just dumping the array as an image, but I verified on one complex building that I am exactly reproducing spatialpandas's output (including the short-circuit code paths, in which a polygon is smaller than a pixel). The first is low-resolution and the second is high-resolution, the minimum and maximum number of pixels in the performance studies later in this email.
| # Author: Vassil Vassilev | |
| project(aarray-example) | |
| cmake_minimum_required(VERSION 3.10) | |
| #conda install -c conda-forge/label/llvm_rc clangdev=14.0.0.rc2 | |
| set(conda_path "/home/jpivarski/mambaforge/envs/vassil-clang-python/") | |
| set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL) | |
| set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC) |
| import yaml | |
| import awkward as ak | |
| arg2key = { | |
| "List[bool]": "np.bool_", | |
| "Const[List[bool]]": "np.bool_", | |
| "List[int8_t]": "np.int8", | |
| "Const[List[int8_t]]": "np.int8", | |
| "List[uint8_t]": "np.uint8", |
| SELECT | |
| DATE(timestamp) AS date, | |
| details.system.name AS os, | |
| file.project AS project, | |
| REGEXP_REPLACE(file.version, "\\.[0123456789]{1,}$", "") AS version, | |
| COUNT(*) AS count | |
| FROM `the-psf.pypi.downloads*` | |
| WHERE | |
| _TABLE_SUFFIX BETWEEN '20160101' AND '20210224' | |
| AND (file.project = "rootpy" OR |