abstreet/rustdoc/popdat/index.html
2021-03-05 18:59:13 +00:00

46 lines
8.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `popdat` crate."><meta name="keywords" content="rust, rustlang, rust-lang, popdat"><title>popdat - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../popdat/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate popdat</p><div class="block version"><p>Version 0.1.0</p></div><div class="sidebar-elems"><a id="all-types" href="all.html"><p>See all popdat's items</p></a><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li></ul></div><p class="location"></p><script>window.sidebarCurrent = {name: "popdat", ty: "mod", relpath: "../"};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" class="help-button">?</button>
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../src/popdat/lib.rs.html#1-133" title="goto source code">[src]</a></span><span class="in-band">Crate <a class="mod" href="">popdat</a></span></h1><div class="docblock"><p>popdat (&quot;population data&quot;) generates <code>Scenarios</code> given a map and some external census data.
Some of this functionality should maybe be reorganized or incorporated into the importer crate,
but for now, it's convenient to organize it here.</p>
<p>All of the types and methods here are tied to a single <code>Map</code>. Even if a city is chopped up into
multiple pieces, for now, let's assume we're just dealing with one map at a time. That lets us
use the map's coordinate system, building IDs, etc.</p>
<p>These types form a pipeline:</p>
<ol>
<li>For a given map, find some census data that describes how many people live in different
areas of the city. (CensusArea)</li>
<li>Take the CensusAreas and turn them into individual CensusPersons, by randomly choosing a
specific building on the map as their home, and assigning specific attributes based on the
census data's distribution.</li>
<li>For each CensusPerson, classify them into a PersonType, then generate a Schedule of
different Activities throughout the day.</li>
<li>Pick specific buildings to visit to satisfy the Schedule.</li>
</ol>
</div><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
<table><tr class="module-item"><td><a class="mod" href="activities/index.html" title="popdat::activities mod">activities</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="distribute_people/index.html" title="popdat::distribute_people mod">distribute_people</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="import_census/index.html" title="popdat::import_census mod">import_census</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="make_person/index.html" title="popdat::make_person mod">make_person</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="od/index.html" title="popdat::od mod">od</a></td><td class="docblock-short"><p>This is an alternative pipeline for generating a Scenario, starting from origin-destination
data (also called desire lines), which gives a count of commuters between two zones, breaking
down by mode.</p>
</td></tr></table><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<table><tr class="module-item"><td><a class="struct" href="struct.CensusArea.html" title="popdat::CensusArea struct">CensusArea</a></td><td class="docblock-short"><p>Represents aggregate demographic data for some part of a city. These could be census tracts or
blocks, depending what data we find. All of the areas should roughly partition the map -- we
probably don't need to guarantee we cover every single building, but we definitely shouldn't
have two overlapping areas.</p>
</td></tr><tr class="module-item"><td><a class="struct" href="struct.CensusPerson.html" title="popdat::CensusPerson struct">CensusPerson</a></td><td class="docblock-short"><p>Demographic information for a single person</p>
</td></tr><tr class="module-item"><td><a class="struct" href="struct.Config.html" title="popdat::Config struct">Config</a></td><td class="docblock-short"><p>Any arbitrarily chosen parameters needed should be put here, so they can be controlled from the
UI or tuned for different cities.</p>
</td></tr><tr class="module-item"><td><a class="struct" href="struct.Schedule.html" title="popdat::Schedule struct">Schedule</a></td><td class="docblock-short"><p>A single person's daily schedule. It's assumed that someone always starts at home. And for most
people, the last entry should probably be Activity::Home.</p>
</td></tr></table><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2>
<table><tr class="module-item"><td><a class="enum" href="enum.Activity.html" title="popdat::Activity enum">Activity</a></td><td class="docblock-short"><p>Different things people might do in the day. Maybe it's more clear to call this a
DestinationType or similar.</p>
</td></tr><tr class="module-item"><td><a class="enum" href="enum.PersonType.html" title="popdat::PersonType enum">PersonType</a></td><td class="docblock-short"><p>It might be useful to classify a CensusPerson into different categories to figure out their
Schedule.</p>
</td></tr></table><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2>
<table><tr class="module-item"><td><a class="fn" href="fn.distribute_population_to_homes.html" title="popdat::distribute_population_to_homes fn">distribute_population_to_homes</a></td><td class="docblock-short"><p>Starting from some number of total people living in a polygonal area, randomly distribute them
to residential buildings within that area. Returns a list of homes with the number of residents
in each.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.generate_scenario.html" title="popdat::generate_scenario fn">generate_scenario</a></td><td class="docblock-short"><p>Wires together all the pieces, so you can just hand this any map, and it'll automatically find
appropriate census data, and use it to produce a Scenario.</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "popdat";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>