<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spatial Analysis |</title><link>https://qianliu.me/spatial-analysis/</link><atom:link href="https://qianliu.me/spatial-analysis/index.xml" rel="self" type="application/rss+xml"/><description>Spatial Analysis</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 15 Mar 2024 00:00:00 +0000</lastBuildDate><image><url>https://qianliu.me/media/icon_hu_4f0be17a880898f9.png</url><title>Spatial Analysis</title><link>https://qianliu.me/spatial-analysis/</link></image><item><title>Statistical Analysis on the Impact of City Walls on Urban Expansion in Zhengding</title><link>https://qianliu.me/spatial-analysis/sa-zd-impact-citywall/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>https://qianliu.me/spatial-analysis/sa-zd-impact-citywall/</guid><description>&lt;p&gt;Zhengding (正定) is a small historic city in North China, which was first established in the 7th century and grew into a regional centre. In the early 20th century, the city’s economic and political status dramatically declined due to the detour of major railway routes. The built-up area within the city walls of Zhengding shrank significantly as a consequence. Later, as a result of the economic reform in China in the 1980s, the city sprawled rapidly in the following decades, which is the particular focus of this analysis.&lt;/p&gt;
&lt;p&gt;The current city walls of Zhengding was first constructed in the Ming Dynasty (15th century). They have always play the crucial role of defending the city’s security since then, until the mid-20th century. Although after the foundation of PRC in 1949, several sections of the city walls were demolished for new traffic routes, most of them remained roughly intact.&lt;/p&gt;
&lt;p&gt;The city of Zhengding started its urban sprawl after the economic reform in China in the 1980s, during which the hindering impact of city walls became more and more prominent.&lt;/p&gt;
&lt;p&gt;This analysis, focusing on four representative temporal cross-sections, 1966, 1992, 2008, and 2024, aims to understanding how the city walls has impacted the urban growth in Zhengding.&lt;/p&gt;
&lt;p&gt;The data derived from the previous analysis on the urban network of Zhengding and its growth (
). The Space Syntax measurement of Axial Synergy (AS) was used to indicate the extent to which the built-up area inside and outside Zhengding’s city walls were divided.&lt;/p&gt;
&lt;p&gt;A regression analysis was carried out between the calculation results of axial integration on global scale and on R3 scale to calculate the AS. Python data analysis libraries were used, including Pandas for basic manipulation of CSV datasets, SciPy for regression analysis, and Matplotlib for data visualisation.&lt;/p&gt;
&lt;p&gt;Results are shown in the following figures:&lt;/p&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8 items-start mb-12"&gt;
&lt;div class="[&amp;_figure]:m-0 md:mt-1.5"&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-zd-impact-citywall/bar.png"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class="prose dark:prose-invert [&amp;&gt;p:first-child]:mt-0"&gt;
&lt;!-- 👇 注意：文字上下必须留有空行 👇 --&gt;
&lt;p&gt;On the left: Basic statistics of the built-up area of Zhengding, illustrating the urban sprawl, especially the outside gradually becoming the majority.&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Below: Axial Synergy of Zhengding in the four years. The R2 values between global Axial Integration and R3 Axial Integration of each year represent the Axial Synergy. The figure indicates that the built-up area inside and outside the city walls got more integrated rather than divided with the process of urban growth.&lt;/p&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-zd-impact-citywall/scatter.png"&gt;
&lt;/figure&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8 items-start mb-12"&gt;
&lt;div class="prose dark:prose-invert [&amp;&gt;p:first-child]:mt-0"&gt;
&lt;!-- 👇 注意：文字上下必须留有空行 👇 --&gt;
&lt;p&gt;On the right: comparison between the R2 values inside and outside the city walls in the four years, showing better integration between the two parts of the city.&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;div class="[&amp;_figure]:m-0 md:mt-1.5"&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-zd-impact-citywall/line.jpg"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Visualisation of Rivers in China Using Geo-Python</title><link>https://qianliu.me/spatial-analysis/sa-river-china/</link><pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate><guid>https://qianliu.me/spatial-analysis/sa-river-china/</guid><description>&lt;p&gt;This visualization shows all the rivers in China, with different colors assigned to the rivers according to their main streams, and different line widths assigned to the rivers according to their drainage areas.&lt;/p&gt;
&lt;p&gt;Data of the world rivers was acquired from
, from which the rivers in China were filtered out using the borderline data acquired from
.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Select the country and get its geometry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;country_gdf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gpd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_file&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;country&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;China&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;selected_country&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;country_gdf&lt;/span&gt;&lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;country_gdf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;NAME&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Filter out the geometry of the rivers from the world rivers datasets&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;river_gdf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gpd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hydrorivers_filepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mask&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;selected_country&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, based on the data in the drainage area column (&lt;code&gt;UPLAND_SKM&lt;/code&gt;) in the geo data frame, create a new line width column (&lt;code&gt;width&lt;/code&gt;) and assign a value between 0.2 and 1.0 to each row based on its drainage area.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;original_min&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;original_max&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;target_min&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;target_max&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scaled&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;river_gdf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;UPLAND_SKM&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;original_min&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;original_max&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;original_min&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;river_gdf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;width&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scaled&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target_max&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;target_min&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;target_min&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;river_gdf_final&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;river_gdf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;UPLAND_SKM&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;width&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;MAIN_RIV&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;UPLAND_SKM&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;width&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;geometry&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the end, great plot and save the figure, where each river is assigned a color in the colormap according to the value in the main stream column (&lt;code&gt;MAIN_RIV&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subplots&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;figsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Rivers of &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_facecolor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;black&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;river_gdf_final&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;categorical&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;MAIN_RIV&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cmap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;terrain&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;linewidth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;river_gdf_final&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;width&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_axis_off&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tight_layout&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;white&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fontsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;savefig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Rivers in China.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dpi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The final visualisation is shown as follows:&lt;/p&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-river-china/result.png"&gt;
&lt;/figure&gt;</description></item><item><title>Animation of a GPS track in QGIS</title><link>https://qianliu.me/spatial-analysis/sa-animation-gps/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://qianliu.me/spatial-analysis/sa-animation-gps/</guid><description>&lt;p&gt;This visualisation illustrates one weekend walk using GPS track data generated by his personal smart watch. The whole animation is conducted in QGIS, the open-source GIS software.&lt;/p&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8 items-start mb-12"&gt;
&lt;div class="prose dark:prose-invert [&amp;&gt;p:first-child]:mt-0"&gt;
&lt;!-- 👇 注意：文字上下必须留有空行 👇 --&gt;
&lt;p&gt;First, the GPS track data was exported from the smart watch and imported into QGIS, and configure proper mark size and color.&lt;/p&gt;
&lt;p&gt;Besides, the mark type of ‘geometry generator’ is used to reduce the number of track points and to make the animation more readable.&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;div class="[&amp;_figure]:m-0 md:mt-1.5"&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-animation-gps/1.png"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8 items-start mb-12"&gt;
&lt;div class="prose dark:prose-invert [&amp;&gt;p:first-child]:mt-0"&gt;
&lt;!-- 👇 注意：文字上下必须留有空行 👇 --&gt;
&lt;p&gt;Second, duplicate the track points layer, set the marker with larger size and radiant effect.&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;div class="[&amp;_figure]:m-0 md:mt-1.5"&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-animation-gps/2.png"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8 items-start mb-12"&gt;
&lt;div class="prose dark:prose-invert [&amp;&gt;p:first-child]:mt-0"&gt;
&lt;!-- 👇 注意：文字上下必须留有空行 👇 --&gt;
&lt;p&gt;Third, edit the properties of the two track points layers, using the ‘time’ field to configure ‘Dynamic Temporal Control’.&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;div class="[&amp;_figure]:m-0 md:mt-1.5"&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-animation-gps/3.png"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8 items-start mb-12"&gt;
&lt;div class="prose dark:prose-invert [&amp;&gt;p:first-child]:mt-0"&gt;
&lt;!-- 👇 注意：文字上下必须留有空行 👇 --&gt;
&lt;p&gt;Fourth, using the plugin QuickMapServices to load a dark base map. And create a point layer with label of time.&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;div class="[&amp;_figure]:m-0 md:mt-1.5"&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-animation-gps/4.png"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In the end, export the animation. The result is shown as follows:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-animation-gps/final.gif"&gt;
&lt;/figure&gt;</description></item><item><title>Points-of-Interest Analysis in Zhengding</title><link>https://qianliu.me/spatial-analysis/sa-poi-zd/</link><pubDate>Fri, 15 Dec 2023 00:00:00 +0000</pubDate><guid>https://qianliu.me/spatial-analysis/sa-poi-zd/</guid><description>&lt;p&gt;This analysis is part of the analysis on the impact of city walls on the urban growth in Zhengding. Points-of-interest (POI) show the distribution of different functions in the city. This analysis selected the type of POI most related to residents’ everyday life, that is, retail stores and restaurants, and visualised their distribution in the city.&lt;/p&gt;
&lt;p&gt;The POI data was acquired from
(高德地图), the most popular web map service provider in China, with the tool EasyPOI developed by
. Then the data was imported into QGIS and visualised as a heatmap. At last, the visualisation of POI distribution was overlapped with the results of Space Syntax analysis (
).&lt;/p&gt;
&lt;p&gt;The result is shown in the following figure:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-poi-zd/full.png"&gt;
&lt;/figure&gt;</description></item><item><title>Visual Integration Analysis of Optics Valley Pedestrian Zone</title><link>https://qianliu.me/spatial-analysis/sa-vga-guanggu/</link><pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate><guid>https://qianliu.me/spatial-analysis/sa-vga-guanggu/</guid><description>&lt;p&gt;This analysis was part of my master’s thesis research. The optics Valley Pedestrian Zone (光谷步行街) is a popular commercial complex in Wuhan, China. The goal is to understand how the spatial layout in this commercial complex affected user’s visual perception.&lt;/p&gt;
&lt;p&gt;Visual Integration is the most critical measurement of the Visual Graph Analysis (VGA) approach as a type of Space Syntax analysis. It measures how one space is visually connected with all other spaces. The more visually connected a space is, the more likely it is to be seen by users, and, in turn, the more likely users are to visit it. A spatial layout with higher overall Visual Integration can better help users get a clear perception of the whole place, thus giving them a greater sense of security and direction, and better walking experience. As a result, stores situated near the spots with high Visual Integration values tend to attract more customers and perform better commercially.&lt;/p&gt;
&lt;p&gt;The analysis was conducted using the software depthMapX, a tool dedicated to Space Syntax analysis developed by the Space Syntax team at UCL. By convention, in the analysis results, red colors refer to higher Visual Integration, and blue colors refer to lower.&lt;/p&gt;
&lt;p&gt;The analysis calculated the Visual Integration of all the communal spaces (corridors, courtyards) in Optics Vally Pedestrian Zone, excluding the stores. Then, the result images with colors of Visual Integration exported from depthMapX were overlapped with the floor plan.&lt;/p&gt;
&lt;p&gt;Results are shown in the following images:&lt;/p&gt;
&lt;div class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-6 mt-8 -mb-2 [&amp;_figure]:m-0"&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/-1.jpg"
alt="-1 Floor"&gt;&lt;figcaption&gt;
&lt;p&gt;-1 Floor&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/0.jpg"
alt="0 Floor"&gt;&lt;figcaption&gt;
&lt;p&gt;0 Floor&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/1.jpg"
alt="1 Floor"&gt;&lt;figcaption&gt;
&lt;p&gt;1 Floor&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/2.jpg"
alt="2 Floor"&gt;&lt;figcaption&gt;
&lt;p&gt;2 Floor&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/3.jpg"
alt="3 Floor"&gt;&lt;figcaption&gt;
&lt;p&gt;3 Floor&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/4.jpg"
alt="4 Floor"&gt;&lt;figcaption&gt;
&lt;p&gt;4 Floor&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Based on these analysis results, the research also proposed several strategies on improving the overall Visual Integration of the whole complex and to enhance the walking experience, with minimal alteration to the already established spatial layout. For example, two openings were proposed on the 1st floor, as is shown below:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-vga-guanggu/featured.png"&gt;
&lt;/figure&gt;</description></item><item><title>Analysis on the Space Network of Zhengding and Its Expansion</title><link>https://qianliu.me/spatial-analysis/sa-space-network-zd/</link><pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate><guid>https://qianliu.me/spatial-analysis/sa-space-network-zd/</guid><description>&lt;p&gt;Zhengding (正定) is a small historic city in North China, which was first established in the 7th century and grew into a regional centre. In the early 20th century, the city’s economic and political status dramatically declined due to the detour of major railway routes. The built-up area within the city walls of Zhengding shrank significantly as a consequence. Later, as a result of the economic reform in China in the 1980s, the city sprawled rapidly in the following decades, which is the particular focus of this analysis.&lt;/p&gt;
&lt;p&gt;This analysis aims to understanding the urban networks of Zhengding and its evolution, focusing on four representative years, 1966, 1992, 2008, and 2024, as temporal cross-sections of the evolution process. Meanwhile, as part of the research on the impact of city walls on urban growth, the networks within and outside the city walls are particularly compared.&lt;/p&gt;
&lt;p&gt;Space Syntax is used as the major conceptual basis in this analysis. Specifically, two syntactic measurements, Normal Angular Integration (NAIN) and Normal Angular Choice (NACH) were calculated for indicating the accessibility and connection of each section in the road network of Zhengding, and for identifying the centre(s) and structural elements in this network.&lt;/p&gt;
&lt;p&gt;The measurements, NAIN and NACH, were calculated using the software depthMapX, a tool dedicated for Space Syntax analysis developed by UCL. And then overlapped with the shadows of built-up areas using Adobe Photoshop and Adobe Illustrator, for better illustration of the urban sprawl process.&lt;/p&gt;
&lt;p&gt;Results are shown as follows:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-space-network-zd/NAIN.png"
alt="Normal Angular Integration (NAIN) calculation results in the four years. Red colors indicate high NAIN value, while blue colors indicate low values. Centre(s) and structural axes can be identified."&gt;&lt;figcaption&gt;
&lt;p&gt;Normal Angular Integration (NAIN) calculation results in the four years. Red colors indicate high NAIN value, while blue colors indicate low values. Centre(s) and structural axes can be identified.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/spatial-analysis/sa-space-network-zd/NACH.png"
alt="Normal Angular Choice (NACH) calculation results in the four years. Red colors indicate high NACH value, while blue colors indicate low values. Centre(s) and structural axes can be identified."&gt;&lt;figcaption&gt;
&lt;p&gt;Normal Angular Choice (NACH) calculation results in the four years. Red colors indicate high NACH value, while blue colors indicate low values. Centre(s) and structural axes can be identified.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;</description></item></channel></rss>