|
258 | 258 | <li> |
259 | 259 | <a href="#geocoder-queries" class="toc-h2 toc-link" data-title="Geocoder queries">Geocoder queries</a> |
260 | 260 | </li> |
| 261 | + <li> |
| 262 | + <a href="#custom-polygon-queries" class="toc-h2 toc-link" data-title="Custom polygon queries">Custom polygon queries</a> |
| 263 | + </li> |
261 | 264 | <li> |
262 | 265 | <a href="#advanced-queries" class="toc-h2 toc-link" data-title="Advanced queries">Advanced queries</a> |
263 | 266 | </li> |
@@ -854,6 +857,66 @@ <h2 id='geocoder-queries'>Geocoder queries</h2> |
854 | 857 | <td>Boston, MA</td> |
855 | 858 | </tr> |
856 | 859 | </tbody></table> |
| 860 | +<h2 id='custom-polygon-queries'>Custom polygon queries</h2> |
| 861 | +<blockquote> |
| 862 | +<p>This query returns the population contained within the custom polygon by year</p> |
| 863 | +</blockquote> |
| 864 | +<pre class="highlight python tab-python"><code><span class="kn">from</span> <span class="nn">strato_query</span> <span class="kn">import</span> <span class="n">SDAPIQuery</span><span class="p">,</span> <span class="n">APIQueryParams</span> |
| 865 | +<span class="kn">from</span> <span class="nn">strato_query.filters</span> <span class="kn">import</span> <span class="n">IntersectsFilter</span><span class="p">,</span> <span class="n">BetweenFilter</span> |
| 866 | +<span class="kn">from</span> <span class="nn">strato_query.aggregations</span> <span class="kn">import</span> <span class="n">SumAggregation</span> |
| 867 | + |
| 868 | +<span class="n">df</span> <span class="o">=</span> <span class="n">SDAPIQuery</span><span class="o">.</span><span class="n">query_api_df</span><span class="p">(</span> |
| 869 | + <span class="n">APIQueryParams</span><span class="p">(</span> |
| 870 | + <span class="n">table</span><span class="o">=</span><span class="s">'populationforecast_tract_annual_population'</span><span class="p">,</span> |
| 871 | + <span class="n">data_filters</span><span class="o">=</span><span class="p">(</span> |
| 872 | + <span class="n">IntersectsFilter</span><span class="p">(</span> |
| 873 | + <span class="n">detailed_type</span><span class="o">=</span><span class="s">'intersects_weighted'</span><span class="p">,</span> |
| 874 | + <span class="n">var</span><span class="o">=</span><span class="s">'geoid11'</span><span class="p">,</span> |
| 875 | + <span class="n">val</span><span class="o">=</span><span class="p">{</span><span class="s">"type"</span><span class="p">:</span> <span class="s">"Polygon"</span><span class="p">,</span> |
| 876 | + <span class="s">"coordinates"</span><span class="p">:</span> <span class="p">[</span> |
| 877 | + <span class="p">[[</span><span class="o">-</span><span class="mf">71.17801666259767</span><span class="p">,</span> <span class="mf">42.43321295705304</span><span class="p">],</span> |
| 878 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.0145950317383</span><span class="p">,</span> <span class="mf">42.43321295705304</span><span class="p">],</span> |
| 879 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.0145950317383</span><span class="p">,</span> <span class="mf">42.3145122534915</span><span class="p">],</span> |
| 880 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.17801666259767</span><span class="p">,</span> <span class="mf">42.3145122534915</span><span class="p">],</span> |
| 881 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.17801666259767</span><span class="p">,</span> <span class="mf">42.43321295705304</span><span class="p">]]]})</span><span class="o">.</span><span class="n">to_dict</span><span class="p">(),</span> |
| 882 | + <span class="n">BetweenFilter</span><span class="p">(</span><span class="n">var</span><span class="o">=</span><span class="s">'year'</span><span class="p">,</span> <span class="n">val</span><span class="o">=</span><span class="p">[</span><span class="mi">2010</span><span class="p">,</span> <span class="mi">2019</span><span class="p">])</span><span class="o">.</span><span class="n">to_dict</span><span class="p">()),</span> |
| 883 | + <span class="n">data_fields</span><span class="o">=</span><span class="p">(</span><span class="s">'year'</span><span class="p">,</span> <span class="s">'population'</span><span class="p">),</span> |
| 884 | + <span class="n">groupby</span><span class="o">=</span><span class="p">(</span><span class="s">'year'</span><span class="p">,),</span> |
| 885 | + <span class="n">order</span><span class="o">=</span><span class="p">(</span><span class="s">'year'</span><span class="p">,),</span> |
| 886 | + <span class="n">aggregations</span><span class="o">=</span><span class="p">(</span><span class="n">SumAggregation</span><span class="p">(</span><span class="s">'population'</span><span class="p">),),</span> |
| 887 | + <span class="p">))</span> |
| 888 | +</code></pre><pre class="highlight r tab-r"><code><span class="c1"># Not implemented yet |
| 889 | +</span></code></pre><pre class="highlight shell tab-shell"><code><span class="gp">$ </span>curl -X POST <span class="s2">"https://api.stratodem.com/api"</span> <span class="se">\</span> |
| 890 | + -H <span class="s2">"accept: application/json"</span> <span class="se">\</span> |
| 891 | + -H <span class="s2">"Content-Type: application/json"</span> <span class="se">\</span> |
| 892 | + -d <span class="s2">"{ </span><span class="se">\"</span><span class="s2">token</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">my-api-token</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">query</span><span class="se">\"</span><span class="s2">: {</span><span class="se">\"</span><span class="s2">query_type</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">COUNT</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">data_fields</span><span class="se">\"</span><span class="s2">: [</span><span class="se">\"</span><span class="s2">year</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">population</span><span class="se">\"</span><span class="s2">], </span><span class="se">\"</span><span class="s2">table</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">populationforecast_tract_annual_population</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">groupby</span><span class="se">\"</span><span class="s2">: [</span><span class="se">\"</span><span class="s2">year</span><span class="se">\"</span><span class="s2">], </span><span class="se">\"</span><span class="s2">data_filters</span><span class="se">\"</span><span class="s2">: [{</span><span class="se">\"</span><span class="s2">filter_type</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">intersects_weighted</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">filter_value</span><span class="se">\"</span><span class="s2">: {</span><span class="se">\"</span><span class="s2">type</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">Polygon</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">coordinates</span><span class="se">\"</span><span class="s2">: [[[-71.17801666259767, 42.43321295705304], [-71.0145950317383, 42.43321295705304], [-71.0145950317383, 42.3145122534915], [-71.17801666259767, 42.3145122534915], [-71.17801666259767, 42.43321295705304]]]}, </span><span class="se">\"</span><span class="s2">filter_variable</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">geoid11</span><span class="se">\"</span><span class="s2">}, {</span><span class="se">\"</span><span class="s2">filter_type</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">between</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">filter_value</span><span class="se">\"</span><span class="s2">: [2010, 2019], </span><span class="se">\"</span><span class="s2">filter_variable</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">year</span><span class="se">\"</span><span class="s2">}], </span><span class="se">\"</span><span class="s2">aggregations</span><span class="se">\"</span><span class="s2">: [{</span><span class="se">\"</span><span class="s2">aggregation_func</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">sum</span><span class="se">\"</span><span class="s2">, </span><span class="se">\"</span><span class="s2">variable_name</span><span class="se">\"</span><span class="s2">: </span><span class="se">\"</span><span class="s2">population</span><span class="se">\"</span><span class="s2">}], </span><span class="se">\"</span><span class="s2">order</span><span class="se">\"</span><span class="s2">: [</span><span class="se">\"</span><span class="s2">year</span><span class="se">\"</span><span class="s2">]}}"</span> |
| 893 | +</code></pre><pre class="highlight vb tab-vb"><code><span class="c1">' Not implemented yet</span> |
| 894 | +</code></pre> |
| 895 | +<p>To use a provided GeoJSON <code>Polygon</code> as a filter, use the <code>IntersectsFilter</code>.</p> |
| 896 | + |
| 897 | +<p>The example to the right returns the population by year for the area covered by the provided <code>Polygon</code></p> |
| 898 | + |
| 899 | +<p><code>{"type": "Polygon", "coordinates": [[[-71.1326, 42.2981],[-70.9943, 42.2981], [-70.9943, 42.3859],[-71.1326, 42.3859], [-71.1326, 42.2981]]]}</code></p> |
| 900 | + |
| 901 | +<table><thead> |
| 902 | +<tr> |
| 903 | +<th>YEAR</th> |
| 904 | +<th>SUM_POPULATION</th> |
| 905 | +</tr> |
| 906 | +</thead><tbody> |
| 907 | +<tr> |
| 908 | +<td>2010</td> |
| 909 | +<td>852183</td> |
| 910 | +</tr> |
| 911 | +<tr> |
| 912 | +<td>2011</td> |
| 913 | +<td>862990</td> |
| 914 | +</tr> |
| 915 | +<tr> |
| 916 | +<td>....</td> |
| 917 | +<td>......</td> |
| 918 | +</tr> |
| 919 | +</tbody></table> |
857 | 920 | <h2 id='advanced-queries'>Advanced queries</h2> |
858 | 921 | <blockquote> |
859 | 922 | <p>This query returns GDP per capita estimates for counties</p> |
@@ -1115,6 +1178,25 @@ <h2 id='intersectsfilter'><code>IntersectsFilter</code></h2> |
1115 | 1178 | <span class="p">]]</span> |
1116 | 1179 | <span class="p">}</span> |
1117 | 1180 | <span class="p">})</span> |
| 1181 | + |
| 1182 | +<span class="c"># Use this version to get weighted results</span> |
| 1183 | +<span class="n">IntersectsFilter</span><span class="p">(</span> |
| 1184 | + <span class="n">var</span><span class="o">=</span><span class="s">'geometry'</span><span class="p">,</span> |
| 1185 | + <span class="n">detailed_type</span><span class="o">=</span><span class="s">'intersects_weighted'</span><span class="p">,</span> |
| 1186 | + <span class="n">val</span><span class="o">=</span><span class="p">{</span> |
| 1187 | + <span class="s">"type"</span><span class="p">:</span> <span class="s">"Feature"</span><span class="p">,</span> |
| 1188 | + <span class="s">"properties"</span><span class="p">:</span> <span class="p">{},</span> |
| 1189 | + <span class="s">"geometry"</span><span class="p">:</span> <span class="p">{</span> |
| 1190 | + <span class="s">"type"</span><span class="p">:</span> <span class="s">"Polygon"</span><span class="p">,</span> |
| 1191 | + <span class="s">"coordinates"</span><span class="p">:</span> <span class="p">[[</span> |
| 1192 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.13269805908203</span><span class="p">,</span> <span class="mf">42.298135272741206</span><span class="p">],</span> |
| 1193 | + <span class="p">[</span><span class="o">-</span><span class="mf">70.99433898925781</span><span class="p">,</span> <span class="mf">42.298135272741206</span><span class="p">],</span> |
| 1194 | + <span class="p">[</span><span class="o">-</span><span class="mf">70.99433898925781</span><span class="p">,</span> <span class="mf">42.385937107381125</span><span class="p">],</span> |
| 1195 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.13269805908203</span><span class="p">,</span> <span class="mf">42.385937107381125</span><span class="p">],</span> |
| 1196 | + <span class="p">[</span><span class="o">-</span><span class="mf">71.13269805908203</span><span class="p">,</span> <span class="mf">42.298135272741206</span><span class="p">]</span> |
| 1197 | + <span class="p">]]</span> |
| 1198 | + <span class="p">}</span> |
| 1199 | + <span class="p">})</span> |
1118 | 1200 | </code></pre><pre class="highlight r tab-r"><code><span class="c1"># Not implemented yet! |
1119 | 1201 | </span></code></pre><pre class="highlight shell tab-shell"><code><span class="o">{</span><span class="s2">"filter_type"</span>: <span class="s2">"intersects"</span>, <span class="s2">"filter_variable"</span>: <span class="s2">"geometry"</span>, <span class="s2">"filter_value"</span>: <span class="o">{</span><span class="s2">"type"</span>: <span class="s2">"Feature"</span>, <span class="s2">"properties"</span>: <span class="o">{}</span>, <span class="s2">"geometry"</span>: <span class="o">{</span><span class="s2">"type"</span>: <span class="s2">"Polygon"</span>, <span class="s2">"coordinates"</span>: <span class="o">[[[</span>-71.13269805908203, 42.298135272741206], <span class="o">[</span>-70.99433898925781, 42.298135272741206], <span class="o">[</span>-70.99433898925781, 42.385937107381125], <span class="o">[</span>-71.13269805908203, 42.385937107381125], <span class="o">[</span>-71.13269805908203, 42.298135272741206]]]<span class="o">}}</span> |
1120 | 1202 | </code></pre><pre class="highlight vb tab-vb"><code><span class="c1">' Not implemented yet!</span> |
|
0 commit comments