Skip to content

Instantly share code, notes, and snippets.

View asinghvi17's full-sized avatar
🔍

Anshul Singhvi asinghvi17

🔍
  • Columbia University
  • New York, NY
View GitHub Profile
@asinghvi17
asinghvi17 / makie_tex_font.jl
Created May 26, 2023 19:22
Replacing the Makie latex rendering font
_stix_fonts = Dict(:regular => "/System/Library/Fonts/Supplemental/STIXTwoMath.otf",#joinpath("NewComputerModern", "NewCMMath-Regular.otf"),
:italic => "/System/Library/Fonts/Supplemental/STIXTwoMath.otf",#joinpath("NewComputerModern", "NewCM10-Italic.otf"),
:bold => "/System/Library/Fonts/Supplemental/STIXTwoMath.otf",#joinpath("NewComputerModern", "NewCM10-Bold.otf"),
:bolditalic => "/System/Library/Fonts/Supplemental/STIXTwoMath.otf",#joinpath("NewComputerModern", "NewCM10-BoldItalic.otf"),
:math => "/System/Library/Fonts/Supplemental/STIXTwoMath.otf"
)
Makie.MathTeXEngine.default_font_families["STIX"] = Makie.MathTeXEngine.FontFamily(
_stix_fonts,
@asinghvi17
asinghvi17 / proj_trans_generic.jl
Created April 14, 2024 14:18
How to use `proj_trans_generic`
using Proj, BenchmarkTools
import GeometryOps as GO
# using proj_trans_generic on a vector of tuples - or could be GB.Point or SVector or GI.Point with arbitrary metadata, doesn't matter!
points = tuple.(rand(10000), rand(10000))
t = Proj.Transformation("+proj=longlat", "+proj=natearth"; always_xy = true)
function batch_project_numsfirst!(points, projection)
# GC.@preserve points begin # not technically necessary
@asinghvi17
asinghvi17 / update_archive_sources.jl
Created May 3, 2024 14:27
A simple utility to update all archivesources (with some manual editing)
using SHA
function archive_source_string(prefix_name, prefix, suffix, oldhash::String; joinchar = "", unpack_target = nothing)
url = join((prefix, suffix,), joinchar)
hash = bytes2hex(get_hash(url))
print("ArchiveSource(\"\$($(prefix_name))$(joinchar)$(suffix)\", \"$(hash)\"")
if !isnothing(unpack_target)
print("; unpack_target = \"$(unpack_target)\")")
else
print(")")
@asinghvi17
asinghvi17 / r_sf_integration.jl
Last active May 9, 2024 13:52
Hook into RCall.jl to convert SF geometries to GeoInterface wrappers
#=
This file provides integration for R's SF objects
which are essentially geo-dataframes,
into Julia DataFrames with GeoInterface wrapper
geometries.
This requires https://github.com/JuliaInterop/RCall.jl/pull/528,
so run `Pkg.add((; url = "https://github.com/asinghvi17/RCall.jl", rev = "patch-1"))` to get that.
TODO: