abstreet/rustdoc/popdat/index.html
2021-05-15 21:35:08 +00:00

47 lines
8.7 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="popdat (“population data”) generates `Scenarios` 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, its convenient to organize it here."><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><script src="../crates.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" role="button">&#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><div id="sidebar-vars" data-name="popdat" data-ty="mod" data-relpath="../"></div></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" height="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" height="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Crate <a class="mod" href="">popdat</a></span><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></h1><div class="docblock"><p>popdat (“population data”) 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, its 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, lets assume were just dealing with one map at a time. That lets us
use the maps 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 datas 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 dont need to guarantee we cover every single building, but we definitely shouldnt
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 persons daily schedule. Its 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 its 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 itll 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><div id="rustdoc-vars" data-root-path="../" data-current-crate="popdat" data-search-js="../search-index.js"></div>
<script src="../main.js"></script></body></html>