Skip to content

Instantly share code, notes, and snippets.

View betolink's full-sized avatar

Luis López betolink

View GitHub Profile

GOES-16 ABI-L2-MCMIPF data inconsistencies

A running log of every real-world anomaly we've hit while ingesting the s3://noaa-goes16/ABI-L2-MCMIPF/ archive into Icechunk via VirtualiZarr.

Each entry: what the file/day looks like, how it surfaced, how we handle it, and (when known) the most likely upstream cause.


Comparing v006 and v007 ATL03 Reads

Overview

When using equivalent methods the read times of v007 and v006 data are similar, with v007 being slightly faster. For both v006 and v007 data using the blocksize fsspec parameter results is a substantial speedup.

Methods

Ten v007 ATL03 files of varying file size were compared for read speeds on Cryocloud (AWS us-west-2 based Jupyter Hub) using one group of data (gt1l) using the h5py Python library. The h_ph variable as well as three relevant coordinate variables (lat_ph, lon_ph, and delta_time) were read. Times shown are the mean time of 6 independent reads. Error bars show the standard deviation of those times. All files were read 7 times. The first read was not included in the averages because it often was much slower than the subsequent reads (often 2x slower), likely due to an optimization technique from s3 that speeds up sequential reads. Additionally, each file was read 6 times consecutively prior to beginning timed reads, to decrease the effect of a

@s-kganz
s-kganz / profile_earthaccess.py
Created May 16, 2025 23:01
Script to recreate open_rasterio leak on HLSL30 granules
import xarray as xr
import rasterio
import rioxarray
import gc
import earthaccess
assert(earthaccess.login(strategy="netrc").authenticated)
# Find a granule, load it into memory, take mean, call gc
gdal_config = {
@betolink
betolink / cloud-optimized-hdf5.ipynb
Created January 30, 2024 20:33
cloud optimized HDF5
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@rauchg
rauchg / p.sh
Last active December 12, 2025 08:21
Perplexity CLI in pure shell
#!/usr/bin/env bash
function p() {
jq -n \
--arg content "$*" \
'{
"model": "pplx-7b-online",
"messages": [
{
"role": "system",
"content": "Be precise and concise."
@ajelenak
ajelenak / h5stat-extra.py
Last active April 23, 2026 00:37
Additional HDF5 dataset chunk statistics
"""
Compute and report contiguous- and chunked-dataset storage statistics for an
HDF5 file that ``h5stat`` (the stock utility shipped with the HDF5 library) does
not provide.
Overview
--------
``h5stat`` gives a good summary of metadata, free space, and raw storage, but it
stops short of the dataset-level layout details that if importance for files
that use the ``PAGE`` file space strategy and are read over the network through
@MarcSkovMadsen
MarcSkovMadsen / hvplot_interactive.py
Last active January 3, 2023 20:12
Example of using hvPlot .interactive with Panel
import pandas as pd
import hvplot.pandas
import panel as pn
pn.extension(sizing_mode="stretch_width")
PALETTE = [
"#ff6f69",
"#ffcc5c",
"#88d8b0",
@the-spyke
the-spyke / pipewire.md
Last active August 10, 2026 08:55
Enable PipeWire on Ubuntu 22.04

Enable PipeWire on Ubuntu 22.04

This guide is only for original Ubuntu out-of-the-box packages. If you have added a custom PPA like pipewire-debian, you might get into conflicts.

Ubuntu 22.04 has PipeWire partially installed and enabled as it's used by browsers (WebRTC) for recoding the screeen under Wayland. We can enable remaining parts and use PipeWire for audio and Bluetooth instead of PulseAudio.

Starting from WirePlumber version 0.4.8 automatic Bluetooth profile switching (e.g. switching from A2DP to HSP/HFP when an application needs microphone access) is supported. Jammy (22.04) repos provide exactly version 0.4.8. So, we're good.

Based on Debian Wiki, but simplified for Ubuntu 22.04.

@aleixmorgadas
aleixmorgadas / 1. Fallacies.md
Last active October 2, 2021 04:53
Distributed Systems Fundamentals Questions

Fallacy #1. The network is reliable

  • Why the pattern Client-Response might cause some troubles?
  • What are distributed objects?
  • How we can solve this problem?

Fallacy #2. Latency isn't a problem

  • How many calls do you do between services before replying a syncronous call to the end user?
  • Which pattern is more common in your application? Remote calls or messages?
@wolfv
wolfv / github_actions.yaml
Last active August 15, 2025 11:04
micromamba usage
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main