CoinBLAS
maplibre-gl-js
CoinBLAS | maplibre-gl-js | |
---|---|---|
3 | 55 | |
21 | 5,730 | |
- | 1.8% | |
1.8 | 9.9 | |
almost 3 years ago | 1 day ago | |
Jupyter Notebook | TypeScript | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CoinBLAS
-
The "missing" graph datatype already exists. It was invented in the '70s
When you consider that a graph and a matrix are isomorphic, doing vector matrix multiplication takes a vector with a set value, say row 4, and multiplies it by a matrix where row 4 has values present that represent edges to the nodes that are adjacent to it (ie "adjacency" matrix). The result is a vector with the next "step" in a BFS across the graph, do that in a loop and you step across the whole graph.
A cool result of this is, for example, taking an adjacency matrix and squaring it is the "Friend of a Friend" graph. It takes every node/row and multiplies it by itself, returning a matrix that are adjacent to the adjacencies of each node, ie, the friends (adjacencies of the adjacencies) of friends (adjacencies) of the nodes.
Deeper traversal are just higher nodes, a matrix cubed are the friends of the friends of the friends.
A picture is worth a thousand words, see figure 7 of this paper:
https://arxiv.org/pdf/1606.05790.pdf
Also check out figure 8, this shows how incidence matrices can work to represent hyper and multi graphs. An pair of incidence matrices reprsent two graphs, one from nodes to edges and the other from edges to nodes, these are n by m and m by n. When you multiply them, you get a square adjacency matrix that "projects" the incidence into an adjacency. This can be used to collapse hypergraphs into simple graphs that use different semirings to combine the multiple edges.
For some pretty pictures of this kind of stuff, check out CoinBLAS (note I am not a crypto-bro, it was just a very handy extremely large multi-graph that I could easily download in chunks to play with):
https://github.com/Graphegon/CoinBLAS/
-
Ask HN: What Are You Working On?
Python wrapper around The GraphBLAS API:
https://github.com/michelp/pygraphblas
For an upcoming paper we've open sourced using pygraphblas to analyse the bitcoin graph using the GAP benchmarks on a server with 1TB of RAM:
https://github.com/Graphegon/CoinBLAS
- Show HN: CoinBLAS β Bitcoin Analysis with the GraphBLAS
maplibre-gl-js
-
Protomaps β A free and open source map of the world
(.shp .gpkg ...) | ogr2ogr -> .geojson | tippecanoe -> .pmtiles
for OpenStreetMap data there's planetiler[4], and and openmaptiles[5] styles that work with Maplibre
with those combinations you've got a great start to something you can host for pennies on AWS S3+CloudFront or Cloudflare R2, with an open source data pipeline
[1] https://maplibre.org/
- GPSJam: Daily maps of possible GPS interference
-
Building a Map Application with MapLibre GL JS and Svelte
MapLibre GL JS v3.3.1
-
New Map APIs from Google
Does anyone else have a solution for the satellite layer? I was using MapLibre [0] then needed direct-on-the-ground images which made me convert to Google Maps.
[0] https://maplibre.org/
- The OpenTF Manifesto
-
Use 3D map library with API key function of Amazon Location Service
When using the Amazon Location Service, I recommend MapLibre GL JS, which I introduced in my previous article, "Amazon Location Service and AWS Amplify to Use Various Map Library," but you can also use any map library you like, including iTowns this time. I hope you will choose the map library of your choice, including iTowns!
-
Using Lidar to map tree shadows
Your browser has a very powerful image decoder built into it, offloading the PNG decoding into Javascript is very resource hungry.
Using maplibre (or any map viewer) you can load blobs of image data out of a tiff and use `Image` or `Canvas` to render the data onto a map.
Its even easier if the tiffs are already Cloud optimized as they perfectly align to a 1-to-1 map tile and they don't need to be rescaled, you can then just render the images onto the map. eg here is a viewer that loads webps out of a 15GB tiff and uses Canvas to render them onto a map [1]
Unless you are trying to layer all your maps together, you also could stop reprojecting them into webmercator, or if your goal is to layer them, then storing them in webmercator would save a ton of user's compute time.
There are a bunch of us that talk web maping and imagery in the #maplibre and #imagery slack channels in OSMUS's slack [2]
[1] https://blayne.chard.com/cogeotiff-web/index.html?view=cog&i...
[2] https://github.com/maplibre/maplibre-gl-js#getting-involved
- Apache Baremaps: online maps toolkit
-
[OC] A new map of GitHub made from 350M stars, shows 460,000 projects
The map is rendered by https://maplibre.org/, you can see how it is used here https://github.com/anvaka/map-of-github
-
[OC] I made a map of GitHub. It lets you find related projects with ease
Kudos to https://maplibre.org/ - amazing library
What are some alternatives?
Tasker - A commitment tracker desktop app that tracks the progress of your tasks with mouse, keyboard and audio hooks.
Leaflet - π JavaScript library for mobile-friendly interactive maps πΊπ¦
covid_status
mapbox-gl-js - Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL
roost - Proof of Concept for Eventsourced backend
OpenLayers3 - OpenLayers
suncalc - A tiny JavaScript library for calculating sun/moon positions and phases.
leaflet-geoman - ππΊοΈ The most powerful leaflet plugin for drawing and editing geometry layers
osmosis-js - JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync
folium - Python Data. Leaflet.js Maps.
slam-crappy - Navigation project for an indoor robot using a Raspberry Pi, Arduino by combining a camera/OpenCV and physical measurements from ultrasonic and single point lidar sensor.
ol-mapbox-style - Use Mapbox Style objects with OpenLayers