Skip to content

Instantly share code, notes, and snippets.

View cvanelteren's full-sized avatar
🌴

Casper van Elteren cvanelteren

🌴
View GitHub Profile
@cvanelteren
cvanelteren / south_pole_60S.py
Created April 20, 2026 01:28
Flat projection of 60 degrees south with initial claimants
# %%
"""
Antarctic Territorial Claims — Flat Polar View
Top-down South Polar Stereographic map showing the seven national
territorial claims on Antarctica, with flags and color-coded labels
arranged around the 60°S circle.
Background imagery: Natural Earth shaded relief (stock_img).
"""
@cvanelteren
cvanelteren / south_pole_3d.py
Created April 20, 2026 01:23
3D projection of Antarctica with original claimants of the region
# %%
"""
Antarctic Territorial Claims — 3D Relief Map
Renders a tilted 3D disk of Antarctica using real ETOPO 2022 elevation
data from NOAA, with territorial claim overlays and country flags.
Data source: ETOPO 2022 v1 (60-arc-second surface elevation)
https://www.ngdc.noaa.gov/mgg/global/global.html
"""
@cvanelteren
cvanelteren / matplotlib_animation.ipynb
Last active May 13, 2025 07:32
Exercise EHCO group
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@cvanelteren
cvanelteren / gil_test.nim
Created August 29, 2024 07:57
Releasing the GIL in Nim
import strutils, strformat, os, random, times
import dynlib
import nimpy, nimpy/py_lib, nimpy/py_types
{.pragma: pyfunc, cdecl, gcsafe.}
import locks
import malebolgia, math
import random, os
import chronos
@cvanelteren
cvanelteren / vibrant.py
Created August 10, 2024 16:08
vibrant colormap
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np
def create_continuous_colormap(colors, name='custom_colormap'):
# Define color positions (evenly spaced between 0 and 1)
n = len(colors)
positions = np.linspace(0, 1, n)
# Create a colormap
#!/usr/bin/env bashgit clone --bare [email protected]:cvanelteren/dots.git $HOME/.dotfiles# define config alias locally since the dotfiles
# aren't installed on the system yet
function config {
git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME $@
}# create a directory to backup existing dotfiles to
mkdir -p .dotfiles-backup
config checkout
if [ $? = 0 ]; then
echo "Checked out dotfiles from [email protected]:cvanelteren/dotfiles.git";
else
@cvanelteren
cvanelteren / networkx_with_image.py
Created June 1, 2024 10:52
replace networkx nodes with images
import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
g = nx.krackhardt_kite_graph()
pos = nx.kamada_kawai_layout(g)
example = "unknown.jpg"
fig, ax = plt.subplots()
output_size = 25
@cvanelteren
cvanelteren / annotation_network.py
Created May 29, 2024 09:45
cross_figure annotation
import proplot as plt, cmasher as cmr, pandas as pd,\
numpy as np, os, sys, networkx as nx, warnings,\
re
from pathlib import Path
warnings.simplefilter("ignore")
g = nx.krackhardt_kite_graph()
pos = nx.kamada_kawai_layout(g)
@cvanelteren
cvanelteren / bundle.py
Last active June 16, 2024 08:12
data shader edge bundling
import proplot as plt, networkx as nx, pandas as pd
def bundle(g: nx.Graph, pos: dict):
from datashader.bundling import hammer_bundle
edges = []
for u, v in g.edges():
row = dict(source=u, target=v)
edges.append(row)
edges = pd.DataFrame(edges)
@cvanelteren
cvanelteren / overly_complicated.py
Created February 26, 2024 15:32
dynamic_plot
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
def fill_between_3d(ax,x1,y1,z1,x2,y2,z2,mode=1,c='steelblue',alpha=0.6):
"""