<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>空间分析 | 刘乾</title><link>https://qianliu.me/zh/spatial-analysis/</link><atom:link href="https://qianliu.me/zh/spatial-analysis/index.xml" rel="self" type="application/rss+xml"/><description>空间分析</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>zh-Hans</language><lastBuildDate>Fri, 15 Mar 2024 00:00:00 +0000</lastBuildDate><image><url>https://qianliu.me/media/icon_hu_4f0be17a880898f9.png</url><title>空间分析</title><link>https://qianliu.me/zh/spatial-analysis/</link></image><item><title>城墙对正定城市扩张影响的统计分析</title><link>https://qianliu.me/zh/spatial-analysis/sa-zd-impact-citywall/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>https://qianliu.me/zh/spatial-analysis/sa-zd-impact-citywall/</guid><description>&lt;p&gt;正定是中国北方的一座历史名城，始建于公元7世纪，后发展成为区域中心。20世纪初，由于主要铁路线的改道，该城的经济和政治地位急剧下降。其结果是，正定城墙内的建成区面积大幅萎缩。之后，随着20世纪70年代末中国的改革开放，该城在接下来的几十年里迅速扩张，而这一过程正是本分析的重点。&lt;/p&gt;
&lt;p&gt;正定现存的城墙始建于明代（15世纪）。从那时起直到20世纪中叶，城墙一直扮演着保卫城市安全的关键角色。尽管1949年新中国成立后，部分城墙因修建新道路而被拆除，但大部分仍基本保持完整。&lt;/p&gt;
&lt;p&gt;20世纪80年代中国改革开放后，正定城开始了其城市扩张的进程，在此期间，城墙的阻碍作用变得日益凸显。&lt;/p&gt;
&lt;p&gt;本分析聚焦于四个具有代表性的时间截面，即1966年、1992年、2008年和2024年，旨在理解城墙如何影响了正定的城市发展。&lt;/p&gt;
&lt;p&gt;数据来源于此前对正定城市网络及其发展的分析（
）。研究采用了空间句法的轴线协同度（Axial Synergy, AS）指标，来衡量正定城墙内外建成区被分割的程度。&lt;/p&gt;
&lt;p&gt;为计算轴线协同度（AS），我们对全局整合度与R3整合度的计算结果进行了回归分析。分析过程使用了多个Python数据分析库，包括用于CSV数据集基本操作的Pandas、用于回归分析的SciPy，以及用于数据可视化的Matplotlib。&lt;/p&gt;
&lt;p&gt;以下图表展示了分析结果：&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/zh/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;左图： 正定建成区面积基本数据统计。该图表展示了城市的扩张过程，尤其是城外建成区面积逐渐占据主导地位的趋势。&lt;/p&gt;
&lt;!-- 👆 注意：文字上下必须留有空行 👆 --&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;下图：正定在四个年份中的轴线协同度。图中，各年份的全局轴线整合度与R3轴线整合度进行回归分析后得出的R2值，即代表该年的轴线协同度。该图表明，随着城市的发展，城墙内外的建成区非但没有被割裂，反而变得更加一体化。&lt;/p&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/zh/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;右图：四个年份中，城墙内外建成区R2值的比较图，显示出城市两部分之间的整合程度越来越高。&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/zh/spatial-analysis/sa-zd-impact-citywall/line.jpg"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>基于Geo-Python的中国河流数据可视化</title><link>https://qianliu.me/zh/spatial-analysis/sa-river-china/</link><pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate><guid>https://qianliu.me/zh/spatial-analysis/sa-river-china/</guid><description>&lt;p&gt;该可视化作品展示了中国境内的所有河流。图中根据各河流所属的主干流为其赋予了不同的颜色，并依据其流域面积的大小设定了不同的线宽。&lt;/p&gt;
&lt;p&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="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;接着，依据地理数据框中流域面积列（&lt;code&gt;UPLAND_SKM&lt;/code&gt;）的数据，我们创建了一个新的线宽列（&lt;code&gt;width&lt;/code&gt;），并根据每条河流的流域面积，为其分配了0.2至1.0之间的线宽值。&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;最后，我们绘制并保存图像。在图中，每条河流都根据其主干流列（&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;最终的可视化成果如下所示：&lt;/p&gt;
&lt;figure class="rounded-md shadow-sm"&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-river-china/result.png"&gt;
&lt;/figure&gt;</description></item><item><title>在QGIS中制作GPS轨迹动画</title><link>https://qianliu.me/zh/spatial-analysis/sa-animation-gps/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://qianliu.me/zh/spatial-analysis/sa-animation-gps/</guid><description>&lt;p&gt;该可视化作品记录了一次周末散步的过程，数据来源于个人智能手表记录的 GPS 轨迹。整个动画均在开源地理信息系统软件 QGIS 中制作完成。&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;第一步，将GPS轨迹数据从智能手表导出并导入QGIS，配置适当的标记大小和颜色。此外，还使用了“几何图形生成器”（geometry generator）标记类型来精简轨迹点，使动画更具可读性。&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/zh/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;第二步，复制轨迹点图层，并为新图层的标记设置更大的尺寸和发光效果。&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/zh/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;第三步，编辑两个轨迹点图层的属性，利用“时间”（time）字段来配置“动态时间控制”（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/zh/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;第四步，使用QuickMapServices插件加载一幅深色底图，并创建一个带有时间标签的点图层。&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/zh/spatial-analysis/sa-animation-gps/4.png"&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;最后，导出动画。成果如下所示：&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-animation-gps/final.gif"&gt;
&lt;/figure&gt;</description></item><item><title>正定兴趣点（POI）分析</title><link>https://qianliu.me/zh/spatial-analysis/sa-poi-zd/</link><pubDate>Fri, 15 Dec 2023 00:00:00 +0000</pubDate><guid>https://qianliu.me/zh/spatial-analysis/sa-poi-zd/</guid><description>&lt;p&gt;本分析是关于城墙对正定城市扩张影响的系列分析中的一部分。兴趣点（POI）能够揭示城市中不同功能的分布状况。本次分析选取了与居民日常生活最相关的POI类型——零售商店和餐厅，并对其在城市中的分布进行了可视化呈现。&lt;/p&gt;
&lt;p&gt;POI 数据通过中国最主流的网络地图服务商“高德地图”（
）获取，采集工具为“
”开发的 EasyPOI。随后，数据被导入QGIS中，并以热力图的形式进行可视化。最后，我们将POI分布的可视化结果与空间句法分析的结果进行了叠加分析（
）。&lt;/p&gt;
&lt;p&gt;分析结果如下图所示：&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-poi-zd/full.png"&gt;
&lt;/figure&gt;</description></item><item><title>光谷步行街视觉整合度分析</title><link>https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/</link><pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate><guid>https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/</guid><description>&lt;p&gt;本分析是硕士学位论文研究的一部分。光谷步行街是中国武汉一个广受欢迎的商业综合体。本研究的目标是理解该商业综合体的空间布局如何影响使用者的视觉感知。&lt;/p&gt;
&lt;p&gt;视觉整合度（Visual Integration， VI）是空间句法分析方法中“视域图分析法”（Visual Graph Analysis, VGA）最核心的衡量指标。它衡量的是一个空间与所有其他空间在视觉上的连通程度。一个空间的视觉连通性越好，它就越容易被使用者看到，进而也越容易被使用者到访。一个整体视觉整合度更高的空间布局，能更好地帮助使用者清晰地感知整个场所，从而给予他们更强的安全感和方向感，以及更好的步行体验。因此，位于视觉整合度高值点位附近的店铺，往往能吸引更多顾客，并取得更好的商业表现。&lt;/p&gt;
&lt;p&gt;本分析使用了 depthMapX 软件，这是一款由伦敦大学学院（UCL）空间句法团队专门开发的分析工具。按照惯例，在分析结果图中，红色代表较高的视觉整合度，蓝色则代表较低的视觉整合度。&lt;/p&gt;
&lt;p&gt;本分析计算了光谷步行街所有公共空间（走廊、庭院等）的视觉整合度，计算范围不包括店铺内部。然后，将从depthMapX中导出的带有视觉整合度色彩的分析图与建筑平面图进行了叠加。&lt;/p&gt;
&lt;p&gt;分析结果如下图所示：&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/zh/spatial-analysis/sa-vga-guanggu/-1.jpg"
alt="-1层"&gt;&lt;figcaption&gt;
&lt;p&gt;-1层&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/0.jpg"
alt="1层"&gt;&lt;figcaption&gt;
&lt;p&gt;1层&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/1.jpg"
alt="2层"&gt;&lt;figcaption&gt;
&lt;p&gt;2层&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/2.jpg"
alt="3层"&gt;&lt;figcaption&gt;
&lt;p&gt;3层&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/3.jpg"
alt="4层"&gt;&lt;figcaption&gt;
&lt;p&gt;4层&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/4.jpg"
alt="5层"&gt;&lt;figcaption&gt;
&lt;p&gt;5层&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;基于这些分析结果，本研究还提出了一些旨在提升整体视觉整合度、并以对既有空间布局做最小改动为前提来优化步行体验的策略。例如，我们提议在首层增设两处开口，如下图所示：&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-vga-guanggu/featured.png"&gt;
&lt;/figure&gt;</description></item><item><title>正定空间网络结构及其扩张分析</title><link>https://qianliu.me/zh/spatial-analysis/sa-space-network-zd/</link><pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate><guid>https://qianliu.me/zh/spatial-analysis/sa-space-network-zd/</guid><description>&lt;p&gt;正定是中国北方的一座历史名城，始建于公元7世纪，后发展成为区域中心。20世纪初，由于主要铁路线的改道，该城的经济和政治地位急剧下降。其结果是，正定城墙内的建成区面积大幅萎缩。之后，随着20世纪80年代中国的改革开放，该城在接下来的几十年里迅速扩张，而这一过程正是本分析的重点。&lt;/p&gt;
&lt;p&gt;本分析旨在理解正定的城市网络及其演变过程，并聚焦于1966年、1992年、2008年和2024年这四个具有代表性的年份，将其作为演变过程的时间截面。同时，作为城墙对城市发展影响研究的一部分，本分析还特别比较了城墙内外的网络形态。&lt;/p&gt;
&lt;p&gt;空间句法是本分析的主要理论基础。具体而言，我们计算了两个句法衡量指标——标准化角整合度（Normal Angular Integration, NAIN）和标准化角选择度（Normal Angular Choice, NACH），用以表示正定路网中每个路段的可达性与连通性，并识别出该网络中的中心和结构性元素。（关于空间句法的更多详情→）&lt;/p&gt;
&lt;p&gt;通过伦敦大学学院（UCL）开发的专用空间句法分析软件depthMapX，计算了NAIN和NACH这两个指标。然后，为了更好地展示城市扩张的过程，我们使用Adobe Photoshop和Adobe Illustrator，将分析结果与建成区的阴影图层进行了叠加。&lt;/p&gt;
&lt;p&gt;分析结果如下所示：&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-space-network-zd/NAIN.png"
alt="四个年份的标准化角整合度（NAIN）计算结果。图中，红色表示NAIN值高，蓝色表示值低。从中可以识别出城市的中心区与结构性轴线。"&gt;&lt;figcaption&gt;
&lt;p&gt;四个年份的标准化角整合度（NAIN）计算结果。图中，红色表示NAIN值高，蓝色表示值低。从中可以识别出城市的中心区与结构性轴线。&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://qianliu.me/zh/spatial-analysis/sa-space-network-zd/NACH.png"
alt="四个年份的标准化角选择度（NACH）计算结果。图中，红色表示NACH值高，蓝色表示值低。从中可以识别出城市的中心区与结构性轴线。"&gt;&lt;figcaption&gt;
&lt;p&gt;四个年份的标准化角选择度（NACH）计算结果。图中，红色表示NACH值高，蓝色表示值低。从中可以识别出城市的中心区与结构性轴线。&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;</description></item></channel></rss>