Comments (7)
Links to discussion here npct/pct-shiny#450 and discussion with @mpadge.
Key part:
Overall we need new functions for aggregating flows based on underlying geometries. Imagine you have an OD level dataset called flow_oa
of travel patterns at the OA-WPZ (as we do) and we want to aggregate to the the LSOA-WPZ level (as we may want to do). I'm imagining a function like this:
aggregate.od <- function(od_highres, od_lowres, FUN) {...}
This is moving towards the utility of a class for od
data discussed with Richard Ellison in the attached paper, because all ODs would have attached geometries of origins and destinations, making aggregation possible using one method or another. In our use case you would say say:
flow_lsoa_agg = aggregate.od(flow_oa, flow_lsoa, sum)
Note there is a commercial product that does a similar thing: https://saspac.org/
from stplanr.
Also links to this: npct/pct-shiny#291
from stplanr.
As I commented in npct/pct-shiny#450 I think it would be most generalisable if we adopt the geos functions to first generate concordance tables (with proportionate areas) and then use that to aggregate to the more aggregate geographic boundaries.
As an initial version, perhaps simplest to just do this in the most straightforward manner possible and rely on the user to ensure their boundaries are sufficiently accurate to not have too much spillover along boundaries. Some of the code in the calc_catchment functions might be useful as it (effectively) does exactly the same operation except instead of doing it on a polygon layer that covers the same area it just does it for the buffer.
from stplanr.
OK - would you like to create a 1st attempt @richardellison? Or I can. Thanks.
from stplanr.
I should be able to have a go this weekend. What do you want to call the function? aggregate.od as above or od_aggregate?
from stplanr.
od_aggregate
for sure in the first instance. If it's a generic function, it would not be visible to the user. Look forward to testing it and makes me think, at some point we should explore a class definition for OD data, probably incorporating tibble and sf but that's certainly for another weekend/week/month/year!
from stplanr.
Closed by @richardellison here: Robinlovelace@4728f43
from stplanr.
Related Issues (20)
- GitHub actions failing
- Comparing the results between angle_diff with calculate_angle/get_vector HOT 1
- Error message in bind_sf
- CRAN issues
- bug in the rnet_merge function when defining the funs HOT 3
- Use different buffer options in `rnet_merge()`
- Convert large GeoJSON file to PMTiles HOT 1
- bug in geo_buffer HOT 7
- Possible speed enhancement to `mats2line()` HOT 3
- Invalid LineStrings in routes_fast_sf HOT 1
- Use `od::odc_to_sfc()` do the legwork in `mats2line()` HOT 3
- Bug in `line_segment()` when using certain values on projected data with `rsgeo` implementation HOT 8
- `rnet_merge()` fails when inputs are projected HOT 4
- `line_bearing()` is slow HOT 3
- Argument of segment_length in line_segment fun causes issue HOT 14
- Tried creating a route from desirelines using osrm function HOT 9
- rnet merge function can't not handle attributes containing strings HOT 1
- Add links to more papers in DESCRIPTION
- Re-add n_segments argument to line_segment() HOT 1
- `line_segment()` fails when n_segments has multiple values HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stplanr.