Mike O'Brien
@obrien.page
1K followers 750 following 1.2K posts
Full-stack fish ecologist at the UMCES Chesapeake Biological Laboratory, MD, USA. Richmond, VA culture leech living in Eastern Henrico. Small farm dabbler. https://obrien.page https://github.com/mhpob
Posts Media Videos Starter Packs
Reposted by Mike O'Brien
danielbachman.bsky.social
Thinking about all the local papers we’ve lost over the last 10+ years…this is a great doc.

Stripped for Parts: American Journalism on the Brink | PBS
obrien.page
cc Richmond, VA and Henrico, VA

And where do you think they're putting all the data centers and natural gas plants to fuel the data centers?
obrien.page
**sometimes 😬
Sometimes [] == c() so there's some trial and error for me.
obrien.page
If it helps: {mapgl} builds up an #rstats list which is translated to Mapbox GL JS via {htmlwidgets}/{jsonlite}. So if you are reading the Mapbox docs, try to envision everything as a nested list in R. Every "," is a new element of the list. Every "[]" indicates the creation of a nested list.
obrien.page
I appreciate the question -- it's baiting me into (very slowly) starting to wrap my head around all of this.
obrien.page
The issue does suggest that you can mess with the structure of "stops" until you get something that looks good without running it through mapgl -- then you can at least see the what you would be feeding it.

jsonlite::toJSON(list("match", "direction_of_travel", values, stops), auto_unbox = TRUE)
obrien.page
Hmm, nevermind. That's kind of already what you were doing.
obrien.page
I recognize the round trip of Mapbox -> R -> Mapbox is ridiculous here, but still fun and good to know it can be done.
obrien.page
The @maprva.org surveillance map, ported to #Rstats using mapgl, osmdata, sf, and dplyr.

gist.github.com/mhpob/17782b...

Not 1:1 in terms of Ultra/Mapbox GL JS -> R, but pretty close!
Original query: overpass-ultra.us#query=url%3A...

cc @mackaszechno.bsky.social @kylewalker.bsky.social
Reposted by Mike O'Brien
obrien.page
Since you've been using mapgl, you'll see that the syntax is nearly exactly the same as both are using Mapbox GL JS. @kylewalker.bsky.social has taken the meat and adapted it to be consumable by us R types.

I'm certain you can recreate this effect using mapgl or using its API to hack it together.
obrien.page
Not for nothing, here's the Flock network we've been able to find in Richmond, VA, gunshot spotters included (RPD have denied FOIA requests citing security concerns).

maprva.org/projects/sur...
obrien.page
"when the search was performed, police were conducting a “death investigation” into the death of the fetus, and police discussed whether they could charge the woman with a crime with the District Attorney’s office on the same day that they performed the Flock search"
Reposted by Mike O'Brien
urichmondsal.bsky.social
We celebrated GIS Day really early this year to avoid schedule conflicts. We kicked it off on Monday with our friends at MapRVA with a map-sidewalks-athon! So funny hanging out my fellow map nerds! Thanks so much for coming out to campus! @maprva.org
obrien.page
The overhead of indexing the data makes this slower than data.table::fread in my experience, unless you're reading the *same* dataset repeatedly.
Reposted by Mike O'Brien
nickcunningham.bsky.social
“By 2028, an average family in the region will be paying around $70 a month extra on their electricity bills because of forecasted data center growth”

I'm once again asking why ratepayers are subsidizing AI titans?

www.eenews.net/articles/dat...
Data center boom sparks sticker shock for PJM ratepayers
New analyses show that costs passed on to utility customers to guarantee future electricity demand are rising rapidly.
www.eenews.net
Reposted by Mike O'Brien
maprva.org
MapRVA has a lot in store for October! Visit maprva.org for more details. Hope to see you there 🗺️
A pumpkin-themed flyer featuring upcoming MapRVA events. It lists a virtual event on Oct 9, in-person meetup on Oct 16, cemetery mapping presentation on the 29th, and a Fall Line Trail field trip on Nov 8th.