diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..2430a195 --- /dev/null +++ b/404.html @@ -0,0 +1,959 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 404 Page not found | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +

找不到页面

+ + + +
+ +
+ + + + +

也许你在找?

+ + + + +

最新

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..b0235afd --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +gmt-china.org diff --git a/_headers b/_headers new file mode 100644 index 00000000..9abdadc5 --- /dev/null +++ b/_headers @@ -0,0 +1,15 @@ +# Netlify headers +# Automatically generated +# Documentation: https://wowchemy.com/docs/hugo-tutorials/security/ +/* + X-Frame-Options: DENY + X-XSS-Protection: 1; mode=block + X-Content-Type-Options: nosniff + Strict-Transport-Security: max-age=31536000; includeSubDomains + Referrer-Policy: strict-origin-when-cross-origin + + Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() +/index.webmanifest + Content-Type: application/manifest+json +/index.xml + Content-Type: application/rss+xml diff --git a/_redirects b/_redirects new file mode 100644 index 00000000..07976974 --- /dev/null +++ b/_redirects @@ -0,0 +1,3 @@ +# Netlify redirects +# Automatically generated +# Documentation: https://docs.netlify.com/routing/redirects/ \ No newline at end of file diff --git a/authors/eyou/index.html b/authors/eyou/index.html new file mode 100644 index 00000000..f2a534ef --- /dev/null +++ b/authors/eyou/index.html @@ -0,0 +1,952 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eyou | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

eyou

+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/authors/eyou/index.xml b/authors/eyou/index.xml new file mode 100644 index 00000000..d85358d6 --- /dev/null +++ b/authors/eyou/index.xml @@ -0,0 +1,406 @@ + + + + eyou | GMT 中文社区 + https://gmt-china.org/authors/eyou/ + + eyou + Wowchemy (https://wowchemy.com)zh-HansSun, 15 Apr 2018 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + eyou + https://gmt-china.org/authors/eyou/ + + + + 2021版1:100万全国标准基础地理数据!你值得拥有 + https://gmt-china.org/blog/national-geographic-database/ + Sun, 15 Apr 2018 00:00:00 +0000 + https://gmt-china.org/blog/national-geographic-database/ + <p>本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。</p> +<p>具体包括:</p> +<ul> +<li>国家标准1:100万(非涉密)基础地理数据的申请、下载</li> +<li>数据集内容简介</li> +<li>数据集要素合并、提取及格式转换</li> +</ul> +<div class="alert alert-info"> + <div> + 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 +《地图管理条例》有关规定依法履行地图审核程序。 + </div> +</div> +<h2 id="数据概况">数据概况</h2> +<p>国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:</p> +<ul> +<li>共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。</li> +<li>包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。</li> +</ul> +<p>数据更多介绍可访问<a href="http://www.webmap.cn/commres.do?method=result100W" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>。</p> +<h2 id="数据获取">数据获取</h2> +<ul> +<li>进入<a href="http://www.webmap.cn" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>,点右上角“注册”。已注册用户直接登陆。</li> +<li>在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。</li> +<li>该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。</li> +<li>结算,填写订单中的个人信息,<strong>验证手机号</strong>,下载数据。 +**注:**若未提示验证手机,换个firefox浏览器试试。</li> +</ul> +<h2 id="数据集内容简介">数据集内容简介</h2> +<p>该数据集包括5类12个要素集,如下图所示:</p> + + + + + + + + + + + + + + + + +<figure id="figure-全国基础地理数据库数据集"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="全国基础地理数据库数据集" srcset=" + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp 400w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp 760w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp" + width="760" + height="282" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 全国基础地理数据库数据集 + </figcaption></figure> +<p>每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:</p> +<p><strong>BOUL 中国及邻区各级行政界限(线)图层</strong></p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="BOUL" srcset=" + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp 400w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp 760w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp" + width="760" + height="616" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>该数据集包括各级行政区界线,以GB码进行区分:</p> +<table> +<thead> +<tr> +<th>行政区界类型</th> +<th>GB码</th> +</tr> +</thead> +<tbody> +<tr> +<td>海岸线</td> +<td>250200</td> +</tr> +<tr> +<td>水系交汇处</td> +<td>260100</td> +</tr> +<tr> +<td>外国地区国界线</td> +<td>610200</td> +</tr> +<tr> +<td>国界线(已定)</td> +<td>620201</td> +</tr> +<tr> +<td>国界线(未定)</td> +<td>620202</td> +</tr> +<tr> +<td>省级界线</td> +<td>630200</td> +</tr> +<tr> +<td>特别行政区界</td> +<td>630400</td> +</tr> +<tr> +<td>地、市、州级行政区界</td> +<td>640200</td> +</tr> +<tr> +<td>县级行政区界</td> +<td>650200</td> +</tr> +<tr> +<td>特殊地区界限</td> +<td>670202</td> +</tr> +</tbody> +</table> +<p>其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。</p> +<p>此外,常用的还有 <strong>AGNP 各级行政地名和城乡居民地坐标(点)图层</strong></p> +<p>行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:</p> +<table> +<thead> +<tr> +<th>行政地名点类型</th> +<th>CLASS类别</th> +</tr> +</thead> +<tbody> +<tr> +<td>国名</td> +<td>AA</td> +</tr> +<tr> +<td>省(直辖市、自治区、特别行政区)行政地名</td> +<td>AB</td> +</tr> +<tr> +<td>自治州、盟、地区行政地名</td> +<td>AC</td> +</tr> +<tr> +<td>地级市行政地名</td> +<td>AD</td> +</tr> +<tr> +<td>县级市行政地名</td> +<td>AE</td> +</tr> +<tr> +<td>县(自治县、旗、自治旗、地级市市辖区)级市行政地名</td> +<td>AF</td> +</tr> +<tr> +<td>县辖区及县级行政区域的派出机构地名</td> +<td>AG</td> +</tr> +<tr> +<td>街道办事处地名</td> +<td>AH</td> +</tr> +<tr> +<td>镇行政地名</td> +<td>AI</td> +</tr> +<tr> +<td>乡行政地名</td> +<td>AJ</td> +</tr> +<tr> +<td>建制村地名</td> +<td>AK</td> +</tr> +<tr> +<td>城镇区片、小区名</td> +<td>BA</td> +</tr> +<tr> +<td>自然村、屯、片村、村民小组名</td> +<td>BB</td> +</tr> +<tr> +<td>牧点、渔点、棚房名</td> +<td>BC</td> +</tr> +<tr> +<td>其它</td> +<td>BD</td> +</tr> +<tr> +<td>党政机关、党派团体名</td> +<td>CA</td> +</tr> +<tr> +<td>企事业单位名</td> +<td>CB</td> +</tr> +<tr> +<td>农、林、牧、渔场</td> +<td>CC</td> +</tr> +</tbody> +</table> +<h2 id="数据处理">数据处理</h2> +<p>从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:</p> +<ul> +<li>合并77个gdb文件中的同类要素</li> +<li>提取某类要素中的某个等级数据</li> +<li>转为gmt识别的文本格式</li> +</ul> +<h3 id="gdb数据库文件合并">gdb数据库文件合并</h3> +<p>采用本社区一贯推荐的<a href="https://docs.gmt-china.org/latest/utilities/gdal/" target="_blank" rel="noopener">GDAL/ORG库</a>将分幅的gdb数据进行批量合并。 +首先解压所有下载的压缩包,得到以<code>.gdb</code>结尾的目录。目录名类似<code>H51.gdb</code>、<code>I49.gdb</code>等。 +然后在这些目录的上级目录执行以下脚本:</p> +<p>Linux系统: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;./final&#34;</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> i in <span class="k">$(</span>ls -d *.gdb<span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> ! -d <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> <span class="o">]</span> +</span></span><span class="line"><span class="cl"> <span class="k">then</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;creating final filefolder&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -lco <span class="nv">encoding</span><span class="o">=</span>UTF-8 +</span></span><span class="line"><span class="cl"> <span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;merging……&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -update -append +</span></span><span class="line"><span class="cl"><span class="k">fi</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span></code></pre></div></p> +<p>Windows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bat" data-lang="bat"><span class="line"><span class="cl"><span class="c1">REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged</span> +</span></span><span class="line"><span class="cl"><span class="c1">REM 编码为UTF-8以正确显示属性字段中的中文</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -lco encoding=UTF-8 Merged A49.gdb +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="k">/f</span> <span class="se">%%</span>i <span class="k">in</span> <span class="p">(</span><span class="s1">&#39;dir /b &#34;*.gdb&#34;&#39;</span><span class="p">)</span> <span class="k">do</span> <span class="p">(</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -update -append Merged <span class="se">%%</span>i +</span></span><span class="line"><span class="cl"><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">pause</span> +</span></span></code></pre></div></p> +<p>若安装有python环境,还可选择<code>ogrmerge.py</code>工具进行批量的格式转换和合并,详见<a href="https://www.gdal.org/ogrmerge.html" target="_blank" rel="noopener">ogrmerge使用手册</a>。</p> +<p>该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。</p> +<h3 id="查询gb代码与class类别">查询GB代码与CLASS类别</h3> +<p>使用<code>ogrinfo</code>可以查询shp文件内包含哪些要素。例如以下命令查询<code>BOUL.shp</code>中包含的GB代码:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct GB FROM BOUL&#34; BOUL.shp +</code></pre><p>而以下命令则查询<code>AGNP.shp</code>中包含的CLASS类别:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct CLASS FROM AGNP&#34; AGNP.shp +</code></pre><h3 id="提取某类要素">提取某类要素</h3> +<p>由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用<code>ogr2ogr</code>工具提供的sql查询选项进行提取。</p> +<p>例如:</p> +<p>行政区划<code>BOUL</code>图层中GB代码<code>620201</code>、<code>620202</code>、<code>250200</code>分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;GB=620201 or GB=620202 or GB=250200&#34; BOUL_sub.gmt BOUL.shp +</code></pre><p>最后GMT绘图如下:</p> +<pre tabindex="0"><code>gmt begin ChinaMap + gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i +gmt end show +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="ChinaMap" srcset=" + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp 400w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp 760w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp" + width="760" + height="721" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>如果想要提取行政地名点<code>AGNP</code>图层中的建制村信息(对应CLASS为AK),则使用:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;CLASS=&#39;AK&#39;&#34; AGNP.gmt AGNP.shp +</code></pre><p>注意因为CLASS类别为字符串,所以此处<code>AK</code>需要加上引号。GB代码为整型数因而不需要加引号。</p> +<p>最后转换成的GMT格式数据如下:</p> +<pre tabindex="0"><code>... +# @NCLASS|NAME|PINYIN|GNID|XZNAME +# @Tstring|string|string|string|string +# FEATURE_DATA +# @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡 +121.68517089 29.388652295 +# @DAK|坝头村|Batoucun|331022000000|亭旁镇 +121.310746425 29.0109724900001 +# @DAK|白岩村|Baiyancun|331082111028|尤溪镇 +120.971417165 28.7226002200001 +# @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道 +121.257111875 28.8522451100001 +... +</code></pre><p>以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:</p> +<pre tabindex="0"><code>gmt begin AGNP jpg + gmt set PS_CHAR_ENCODING Standard+ + + gmt basemap -R120/121/28/29 -JM10c -Baf + gmt grdimage @earth_relief_15s -Cgeo + gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt + chcp 936 + gmt convert AGNP.gmt -a2=&#34;NAME&#34; | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite +gmt end +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="AGNP" srcset=" + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp 400w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp 760w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp" + width="760" + height="758" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + GMT国内镜像正式建成 + https://gmt-china.org/blog/mirror-site-founded/ + Fri, 08 Jul 2016 00:00:00 +0000 + https://gmt-china.org/blog/mirror-site-founded/ + <p>经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 +该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 +GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。</p> +<h2 id="gmt-源码包镜像">GMT 源码包镜像</h2> +<p>镜像地址:<a href="http://mirrors.ustc.edu.cn/gmt/" target="_blank" rel="noopener">http://mirrors.ustc.edu.cn/gmt/</a></p> +<p>GMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 +进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 <code>bin</code> 目录下。</p> +<h2 id="gmt-远程数据镜像">GMT 远程数据镜像</h2> +<p>镜像地址:<a href="https://mirrors.ustc.edu.cn/gmtdata/" target="_blank" rel="noopener">https://mirrors.ustc.edu.cn/gmtdata/</a></p> +<p>GMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 +<a href="https://docs.gmt-china.org/latest/dataset/usage/" target="_blank" rel="noopener">https://docs.gmt-china.org/latest/dataset/usage/</a>。</p> + + + + + diff --git a/authors/index.html b/authors/index.html new file mode 100644 index 00000000..c4ac1121 --- /dev/null +++ b/authors/index.html @@ -0,0 +1,985 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Authors | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Authors

+ + + + +
+ + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/authors/index.xml b/authors/index.xml new file mode 100644 index 00000000..4771cd86 --- /dev/null +++ b/authors/index.xml @@ -0,0 +1,16 @@ + + + + Authors | GMT 中文社区 + https://gmt-china.org/authors/ + + Authors + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Authors + https://gmt-china.org/authors/ + + + + diff --git a/authors/page/1/index.html b/authors/page/1/index.html new file mode 100644 index 00000000..7d1fd1be --- /dev/null +++ b/authors/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/authors/ + + + + + + diff --git a/authors/seisman/index.html b/authors/seisman/index.html new file mode 100644 index 00000000..5e82332d --- /dev/null +++ b/authors/seisman/index.html @@ -0,0 +1,956 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + seisman | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

seisman

+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/authors/seisman/index.xml b/authors/seisman/index.xml new file mode 100644 index 00000000..2652d7b3 --- /dev/null +++ b/authors/seisman/index.xml @@ -0,0 +1,292 @@ + + + + seisman | GMT 中文社区 + https://gmt-china.org/authors/seisman/ + + seisman + Wowchemy (https://wowchemy.com)zh-HansTue, 17 Oct 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + seisman + https://gmt-china.org/authors/seisman/ + + + + GMT 中文社区第三次线下聚餐 + https://gmt-china.org/blog/gud-20171017/ + Tue, 17 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/gud-20171017/ + <p>金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。</p> +<p>2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。</p> +<p>在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。</p> +<p>希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。</p> +<p>科研道路上,知己天涯若比邻,期待下次再聚~</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp 400w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp 760w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + +<figure id="figure-从左至右依次为章浩东中科院地质与地球物理所王志伟地震局地质研究所王少卿地震局地球物理所-张琰地震局地球物理所张周广州地化所徐荟地震局地球物理所王亮成都理工杨晓瑜地震局地球物理所李佳威地震局地球物理所北大神秘人田冬冬中科大任昱南海所方洪健中科大胡少乾中科大"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所&#43;北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)" srcset=" + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp 400w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp 760w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp" + width="760" + height="493" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) + </figcaption></figure> + + + + + GMT 中文社区 QQ 群入群须知 + https://gmt-china.org/blog/community-guide/ + Wed, 23 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/community-guide/ + <p>欢迎加入“地学GMT中文社区群”:</p> +<p><i class="fab fa-qq"></i> 一群:218905582 +<br> +<i class="fab fa-qq"></i> 二群:791856541</p> +<p>GMT 中文社区群是一个相对活跃且学术氛围浓厚的群。本文是 GMT 中文社区群的入群须知, +也是 GMT 中文社区的提问规范。希望所有群友可以阅读并遵守以下规范来营造更好的群环境。</p> +<div class="row "> +<div class="col-md-6"> +<h4 id="群内可以做的事">群内可以做的事</h4> +<ul> +<li>GMT 相关问题</li> +<li>其他地学软件相关问题</li> +<li>地学科研相关问题</li> +<li>求助文献</li> +<li>发科研相关的培训、会议信息</li> +<li>介绍并推广自己的最新研究成果</li> +</ul> +</div> +<div class="col-md-6"> +<h4 id="群内禁止做的事">群内禁止做的事:</h4> +<ul> +<li>发广告</li> +<li>签到、灌水等无意义行为</li> +<li>人身攻击</li> +<li>讨论政治问题</li> +</ul> +</div> +</div> +<h2 id="安装类问题">安装类问题</h2> +<p>如果你在安装 GMT 的过程中遇到问题,请参照下面的模板提问。</p> +<div class="alert alert-info"> + <div> + <p>我在安装 GMT 的时候遇到了问题,请问该如何解决?谢谢。</p> +<ul> +<li><strong>操作系统是</strong>: Windows XP | Windows 7 | Ubuntu | CentOS | macOS &hellip;</li> +<li><strong>要安装的GMT版本是</strong>: GMT 4.5.16 | GMT 5.4.2 &hellip;</li> +<li><strong>安装GMT参考的文档是</strong>: <em>此处可贴文档的网址</em></li> +<li><strong>安装过程中显示的错误信息为</strong>: <em>此处可贴图</em></li> +</ul> + </div> +</div> +<h2 id="思路类问题">思路类问题</h2> +<p>想要实现某一类图,但不知GMT能否实现或没有实现的思路。</p> +<p>如果别人文章中有自己想要实现的效果图就直接贴图,并指出自己在实现图中哪一部分 +时没有思路。如果找不到已有的效果图,可以考虑手绘示意图,或精准描述自己想要的 +效果,以免引起误会,造成不必要的时间浪费。</p> +<div class="alert alert-info"> + <div> + <p><em>此处先贴一张图</em></p> +<p>请问图中的XXXXX能否用GMT实现?该如何实现?谢谢。</p> + </div> +</div> +<div class="alert alert-info"> + <div> + 请问我想用GMT实现XXX效果。<em>此处详细介绍自己想要的效果</em> 。不知GMT中该如何实现? +谢谢。 + </div> +</div> +<p>如果遇到自己画出来的图与自己预期的图不一致,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>当前效果</strong>:截图</li> +<li><strong>预期效果</strong>:预期效果截图,或对预期效果的精确描述</li> +<li><strong>我的代码是</strong>:给出自己使用的代码,可以截图可以贴代码。最好是给出最小示例而不是一堆代码。</li> +<li><strong>GMT版本是</strong>: GMT 5.4.2</li> +</ul> + </div> +</div> +<h2 id="脚本报错类">脚本报错类</h2> +<p>遇到绘图脚本或数据处理脚本出错时,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>我想要实现的是</strong> :&hellip;</li> +<li><strong>我的命令/脚本是</strong>: 可截图或贴脚本</li> +<li><strong>终端报错是</strong>: 终端报错截图</li> +</ul> + </div> +</div> +<h2 id="文献求助">文献求助</h2> +<p>需要他人帮忙下载文献时,请先使用 sci-hub 工具自行尝试下载 +(<a href="https://gmt-china.org/blog/sci-hub/">sci-hub教程</a>)。</p> +<p>对于中文文献或 sci-hub 无法下载的文献,方可在群中寻找帮助。求助文献时,请先明确 +告知“使用 sci-hub无 法下载该文章”并提供文章的官方链接。若找不到官方链接,则提供 +文章的标题、作者、期刊、年份等信息。</p> +<p>求助文献示例如下:</p> +<div class="alert alert-info"> + <div> + 文献求助!我已经尝试用 sci-hub 下载但依然下载不到。文章链接为: XXXXXXX。谢谢。 + </div> +</div> +<h2 id="提问的智慧">提问的智慧</h2> +<p>时间对任何人都是一笔宝贵的财富。没有人有义务回答你的问题。在期望别人回答你的问题 +之前先要问一问自己针对这个问题做了哪些努力。</p> +<h3 id="提问前需要做的事情">提问前需要做的事情</h3> +<p>大多数的问题,文档都可以为你提供标准的解答。因此在你提问之前,你最好先去阅读一下 +相关的文档,至少确保你阅读过一份完整的入门文档。如果你能够在你提问的同时表明 +自己已经阅读过文档,但是依旧留有困惑,潜在的回答者会更加愿意为你解答。</p> +<p>推荐的一些文档:</p> +<ul> +<li><a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文社区:图库</a></li> +<li><a href="https://docs.gmt-china.org/" target="_blank" rel="noopener">GMT 中文手册</a></li> +<li><a href="https://docs.generic-mapping-tools.org/latest/" target="_blank" rel="noopener">GMT 官方文档</a></li> +</ul> +<h3 id="提问技巧">提问技巧</h3> +<ol> +<li>精确描述自己做了什么,遇到了什么问题,要提供足够的信息给潜在的回答者,尽量避免 +回答者多次要求提问者补充额外的信息的情况。</li> +<li>提供当前所使用的代码。贴完图之后如果自行修正了代码中的某些错误,一定要更新图。</li> +<li>提供截图以及文本。有些时候需要准确看到代码的样子,此时截图更合适;有些时候需要 +复制代码在自己电脑上跑一遍,此时提供文本更合适。</li> +<li>提问时说一说自己为了解决这个问题做了哪些事情,没人喜欢“伸手党”。</li> +<li>时间对任何人都是一笔宝贵的财富,请心怀感恩之心。</li> +<li>当你解决了某个问题(不管是别人帮助还是自己茅塞顿开),请不要吝啬告诉大家你的解决方案</li> +<li>当别人正在讨论某个问题时,请不要中间插入自己的问题,待别人的问题告一段落之后再提问。</li> +<li>除非必要,不要在首次发问的时候@某个人,这样给所有人的感觉是你在向这个人提问, +从而失去了更多的潜在回答者。</li> +<li>有问题就直接问,不必管有没有人用过。很多时候,你在A软件中遇到的问题可能跟A软件 +完全没有关系,完全没接触过A软件的人可能也可以帮你解决该问题。</li> +</ol> + + + + + GMT中文社区正式成立 + https://gmt-china.org/blog/gmt-china-community-founded/ + Wed, 06 Apr 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmt-china-community-founded/ + <p>GMT的中文用户们,大家好,我是 <a href="https://seisman.info" target="_blank" rel="noopener">seisman</a> 。</p> +<p>GMT中文社区于今日正式成立了!</p> +<p>GMT中文社区是针对GMT中文用户而成立的社区。整个社区目前包含了三个主要部分: +社区主站、GMT中文手册和问答社区。</p> +<p>在社区的第一篇博文中,我想谈谈建立这个社区的原因及一些想法。</p> +<h2 id="gmt中文手册">GMT中文手册</h2> +<p>GMT中文手册的项目始于2014年,到2016年初已经初步成形。</p> +<p>在2014年,网络上能够找到的几本GMT中文文档,大多基于GMT4甚至GMT3。 +这几本文档存在一些明显的缺陷:</p> +<ol> +<li>排版质量一般,大多是在Word里写好然后转换成PDF的</li> +<li>缺乏维护,几乎都是写好发布之后就没有再更新</li> +<li>不完整,很多有价值的内容都没有被包含在文档中</li> +<li>不严谨,很多文档声称是基于GMT4,但实际上某些命令却在使用GMT3的语法</li> +<li>无法适配最新版的GMT,某些时候对于新用户而言是一种障碍</li> +<li>重复劳动:不同的作者,花费了大量的时间和精力,翻译整理出了几份相似的文档, +这其中很多工作都是在重复劳动</li> +</ol> +<p>因而,我于2014年开始写针对GMT5的中文手册。新的GMT中文手册具有如下特点:</p> +<ol> +<li>开源:源代码用rST语言写成,并在GitHub上开源</li> +<li>高质量排版:文档有网页版和PDF版,保证高质量的排版(目前尚存在不足,见第5条)</li> +<li>完整性:尽可能覆盖GMT的方方面面,成为一个完整的参考手册(没有最完整,只有更完整,见第5条)</li> +<li>协同合作:依托强大的GitHub和Git,使得多人合作共同编辑同一份文档变得很简单</li> +<li>持续维护:不仅适配GMT的新版本,而且不断修正文档中存在的错误</li> +<li>严谨性:尽可能保证所有命令均通过GMT最新版本的测试</li> +</ol> +<p>经过两年努力,文档的整体结构已经大体完成。我希望文档今后能够持续更新,不断完善, +不管是接下来的GMT 5.2.2、5.3.0还是未来的GMT 6.0甚至7.0,都能随着GMT版本的升级 +而不断更新,但这些已非我一人之力所能完成。众人拾柴火焰高。我希望有更多的GMT中文 +用户加入到文档维护的队伍中来,这便是我建立GMT中文社区的目的。</p> +<h2 id="问答社区">问答社区</h2> +<div class="alert alert-note"> + <div> + 问答社区试运行了一段时间,但最终还是因为用户参与度较低而决定关闭问答社区。 + </div> +</div> +<p>GMT问答社区的前身是地学GMT学习群(群号:218905582)。QQ群属于即时通讯,通常在 +群中提的问题都可以快速得到答案,但与此同时,QQ群存在如下缺点:</p> +<ol> +<li>即时性导致的随意性:由于QQ本质上是一种聊天工具,导致很多人在提问时太过随意。 +遇到问题时,不加思索在QQ群中提问,却不去思考如何提问,如何在提问时提供完整 +有效的信息,如何在提问时解释清楚自己想要实现什么和遇到了什么问题。 +QQ群中的很多提问都是如此,需要回答者多次向提问者发问才能搞清楚提问者的问题。 +这不仅浪费了回答者的时间,也不利于提问者能力的提高。</li> +<li>多话题引起的错乱:经常遇到几个人同时提问,几个话题互相交叉,使得搞不清到底谁在回复谁</li> +<li>问答记录无法长期保存:只有用户接收到的消息会被保存到本地磁盘中,而对于 +新加入的成员而言,则无法看到历史聊天记录</li> +<li>问答记录无法搜索:仅当聊天记录保存在本地磁盘中才能被搜索,无法通过搜索引擎检索</li> +<li>问答记录无法被非群成员搜索:有大量的GMT用户未加入群中,这些非成员则无法获取这些优质的问答资源</li> +<li>Linux用户提问不便:Linux下几乎没有可用的QQ客户端,导致众多Linux下的GMT用户 +只能通过手机打字在群中提问,且只能通过手机拍照的方式上传屏幕截图</li> +</ol> +<p>鉴于QQ群的以上几个缺点,萌生了建立问答社区的想法。希望这样一个问答社区可以解决QQ +群存在的问题。问答社区将努力保持高信噪比,专注于GMT的问与答。</p> +<h2 id="gmt中文社区">GMT中文社区</h2> +<p>最初是计划把中文手册以及问答社区都放在我自己的博客域名之下的,但这样做一方面 +不够正式,另一方面也会影响到我对于自己博客的整体定位。最终经过一番考量之后, +决定单独购买域名,建立GMT中文社区,然后将文档以及问答社区作为GMT中文社区的子项目。</p> +<p>现在,整个GMT中文社区的基本框架已经搭建完毕。我希望它能顺利运行下去,也欢迎 +更多的人提意见和建议,加入到整个社区的维护中来。</p> +<p>最后,我要感谢王亮在整个社区的建立过程中和我交流与讨论,并给出了很多有意义的建议。 +我还要感谢各种开源服务,我的工作是建立在它们之上的。我也希望华语地学界有更多的 +人了解开源、认同开源、热爱开源并最终参与到开源中来。</p> + + + + + diff --git a/authors/seispider/index.html b/authors/seispider/index.html new file mode 100644 index 00000000..16578dbf --- /dev/null +++ b/authors/seispider/index.html @@ -0,0 +1,952 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SeisPider | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

SeisPider

+
+ + +
+
+ + + + + + +
+

最新

+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/authors/seispider/index.xml b/authors/seispider/index.xml new file mode 100644 index 00000000..d18f833a --- /dev/null +++ b/authors/seispider/index.xml @@ -0,0 +1,263 @@ + + + + SeisPider | GMT 中文社区 + https://gmt-china.org/authors/seispider/ + + SeisPider + Wowchemy (https://wowchemy.com)zh-HansThu, 14 Sep 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + SeisPider + https://gmt-china.org/authors/seispider/ + + + + 利用 Google Maps 获取超高精度高程数据 + https://gmt-china.org/blog/google-maps-elevation-api/ + Thu, 14 Sep 2017 00:00:00 +0000 + https://gmt-china.org/blog/google-maps-elevation-api/ + <p>在绘制超小区域的地形图时,常需要超高精度的高程数据。</p> +<p>目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 +可以通过 Google Maps Elevation API 获取米级精度的数据。</p> +<h2 id="数据简介">数据简介</h2> +<p>Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 +置(此类位置返回负值)。</p> +<p>官方文档:</p> +<ul> +<li><a href="https://developers.google.com/maps/documentation/elevation/start?hl=zh-cn" target="_blank" rel="noopener">入门指南</a></li> +<li><a href="https://developers.google.com/maps/documentation/elevation/intro?hl=zh-cn" target="_blank" rel="noopener">开发人员指南</a></li> +</ul> +<h2 id="获取密钥-api-key">获取密钥 API KEY</h2> +<p>想要从Google Maps中获取地形数据,首先需要一个密钥。 +可以从 <a href="https://developers.google.com/maps/documentation/elevation/get-api-key" target="_blank" rel="noopener">get API key</a> +页面开始申请秘钥(需要提供信用卡等信息)。</p> +<p>限额说明:</p> +<ul> +<li>每个用户最多可能只能申请10个免费密钥</li> +<li>每个密钥每天2500次免费请求</li> +<li>每次请求最多512个位置</li> +<li>每秒最多50次请求</li> +</ul> +<h2 id="使用说明">使用说明</h2> +<h3 id="获取单点高程">获取单点高程</h3> +<p>通过简单的网络请求即可获取单点的高程:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&amp;key=YOUR_API_KEY +</code></pre><p>其中:</p> +<ul> +<li><code>locations=39.7391536,-104.9847034</code> 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔;</li> +<li><code>key=YOU_API_KEY</code> 指定了用户密钥,用户需要将自己申请的密钥替换 <code>YOU_API_KEY</code></li> +</ul> +<p>将上面的链接复制到浏览器中,即可得到返回值为::</p> +<pre><code>{ + &quot;results&quot; : [ + { + &quot;elevation&quot; : 1608.637939453125, + &quot;location&quot; : { + &quot;lat&quot; : 39.73915360, + &quot;lng&quot; : -104.98470340 + }, + &quot;resolution&quot; : 4.771975994110107 + } + ], + &quot;status&quot; : &quot;OK&quot; +} +</code></pre> +<p>从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 +resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。</p> +<h3 id="获取多点高程">获取多点高程</h3> +<p>也可以在一次网络请求中获取多个点的高程,多个位置之间用 <code>|</code> 分隔即可。例如:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&amp;key=YOUR_API_KEY +</code></pre><p>但一次请求中的位置不能超过512个。</p> +<h3 id="批量获取高程">批量获取高程</h3> +<p>Google Maps 提供了多种客户端以实现批量获取高程。 +此处以<a href="https://github.com/googlemaps/google-maps-services-python/" target="_blank" rel="noopener">Python客户端</a> 为例。</p> +<ol> +<li> +<p>安装 Google Map API 的 Python模块:</p> +<pre><code> $ pip install -U googlemaps +</code></pre> +</li> +<li> +<p>获取密钥</p> +</li> +<li> +<p>参考如下脚本批量获取高程数据</p> +</li> +</ol> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: utf-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">googlemaps</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="s2">&#34;&#34;&#34;Request elevation and return them with a list +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> Parameter +</span></span></span><span class="line"><span class="cl"><span class="s2"> ========= +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of longitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> yinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of latitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> maxnum : int +</span></span></span><span class="line"><span class="cl"><span class="s2"> point number of one request, maximum value is 512 +</span></span></span><span class="line"><span class="cl"><span class="s2"> &#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">xlist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">ylist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">points</span> <span class="o">=</span> <span class="p">[(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">ylist</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xlist</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">requestnum</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">points</span><span class="p">)</span> <span class="o">/</span> <span class="n">maxnum</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">npoints</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array_split</span><span class="p">(</span><span class="n">points</span><span class="p">,</span> <span class="n">requestnum</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">requestnum</span> <span class="o">&gt;</span> <span class="mi">2500</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Error: Request number exceed! Change grid or region.&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="p">[</span><span class="n">gmaps</span><span class="o">.</span><span class="n">elevation</span><span class="p">(</span><span class="n">locations</span><span class="o">=</span><span class="n">loc</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> <span class="k">for</span> <span class="n">loc</span> <span class="ow">in</span> <span class="n">npoints</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># 设置要下载高程数据的经度范围、纬度范围以及网格间隔</span> +</span></span><span class="line"><span class="cl"><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span> <span class="o">=</span> <span class="mf">120.000</span><span class="p">,</span> <span class="mf">129.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span> <span class="o">=</span> <span class="mf">30.000</span><span class="p">,</span> <span class="mf">30.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">gmaps</span> <span class="o">=</span> <span class="n">googlemaps</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s1">&#39;YOU_API_KEY&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># Obtain all elevations</span> +</span></span><span class="line"><span class="cl"><span class="c1"># 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度</span> +</span></span><span class="line"><span class="cl"><span class="n">elevations</span> <span class="o">=</span> <span class="n">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># output data with format `longitude latitude elevation resolution`</span> +</span></span><span class="line"><span class="cl"><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&#34;Elevations.dat&#34;</span><span class="p">,</span> <span class="s2">&#34;w&#34;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">loclist</span> <span class="ow">in</span> <span class="n">elevations</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">subloc</span> <span class="ow">in</span> <span class="n">loclist</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">outputstr</span> <span class="o">=</span> <span class="s2">&#34;</span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lng&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lat&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;elevation&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;resolution&#39;</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">f</span><span class="o">.</span><span class="n">writelines</span><span class="p">(</span><span class="n">outputstr</span><span class="p">)</span> +</span></span></code></pre></div> + + + + 使用sci-hub下载文献 + https://gmt-china.org/blog/sci-hub/ + Sat, 12 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/sci-hub/ + <p>科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, +因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, +可以下载到绝大多数外文期刊的文章甚至书籍。</p> +<h2 id="sci-hub-网站">sci-hub 网站</h2> +<p>sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, +用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:</p> +<p><a href="https://whereisscihub.now.sh/" target="_blank" rel="noopener">https://whereisscihub.now.sh/</a></p> +<h2 id="使用方法">使用方法</h2> +<p>下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。</p> +<p>要下载一篇文章,需要知道如下两个信息中的至少一个:</p> +<ol> +<li>文献的官方网址,比如 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a>, +可以通过 Google Scholar 等网站搜索得到</li> +<li>文献的DOI,比如 <code>10.1016/0031-9201(81)90046-7</code>,可以从文章的官方网站上找到, +现在大多数文章的参考文献也要求给出DOI信息</li> +</ol> +<blockquote> +<p>DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 +全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, +DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 <a href="https://dx.doi.org/" target="_blank" rel="noopener">https://dx.doi.org/</a> 后 +(例如 <a href="https://dx.doi.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://dx.doi.org/10.1016/0031-9201(81)90046-7</a> )即可跳转到该文章的真实网址。</p> +</blockquote> +<h3 id="到-sci-hub-网站下载">到 sci-hub 网站下载</h3> +<p>访问 sci-hub 网址,比如 <a href="https://sci.hubg.org/" target="_blank" rel="noopener">https://sci.hubg.org/</a> ,如下图所示:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub主页" srcset=" + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp 400w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp 760w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp" + width="760" + height="407" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。</p> +<h3 id="直接利用网址下载全文">直接利用网址下载全文</h3> +<p>打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 <code>sci-hub.org</code> 即可。</p> +<p>例如,这篇文章的网址是 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a> , +在域名的后面加上 sci-hub 的域名,变成: +<a href="https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467</a> +即可直接下载文章全文。</p> +<h3 id="直接利用doi下载全文">直接利用DOI下载全文</h3> +<p>已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 +<a href="https://sci-hub.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://sci-hub.org/10.1016/0031-9201(81)90046-7</a> 即可下载文章全文。</p> +<h2 id="注意事项">注意事项</h2> +<ul> +<li> +<p>当文献下载过频繁会要求用户输入验证码,如下图:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub验证码" srcset=" + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp 400w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp 760w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp" + width="760" + height="386" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +</li> +<li> +<p>DOI是如 <code>10.1016/0031-9201(81)90046-7</code> 这样的字符串,前面不要带 <code>doi:</code> 等其他字符。</p> +</li> +<li> +<p>sci-hub 不支持下载国内期刊的文章</p> +</li> +</ul> + + + + + diff --git "a/authors/\345\210\230\347\217\240\345\246\271/index.html" "b/authors/\345\210\230\347\217\240\345\246\271/index.html" new file mode 100644 index 00000000..c8eaf11e --- /dev/null +++ "b/authors/\345\210\230\347\217\240\345\246\271/index.html" @@ -0,0 +1,948 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 刘珠妹 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

刘珠妹

+
+ + +
+
+ + + + + + +
+

最新

+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/authors/\345\210\230\347\217\240\345\246\271/index.xml" "b/authors/\345\210\230\347\217\240\345\246\271/index.xml" new file mode 100644 index 00000000..b6b68818 --- /dev/null +++ "b/authors/\345\210\230\347\217\240\345\246\271/index.xml" @@ -0,0 +1,297 @@ + + + + 刘珠妹 | GMT 中文社区 + https://gmt-china.org/authors/%E5%88%98%E7%8F%A0%E5%A6%B9/ + + 刘珠妹 + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 刘珠妹 + https://gmt-china.org/authors/%E5%88%98%E7%8F%A0%E5%A6%B9/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + diff --git "a/authors/\347\216\213\344\272\256/index.html" "b/authors/\347\216\213\344\272\256/index.html" new file mode 100644 index 00000000..c72f7489 --- /dev/null +++ "b/authors/\347\216\213\344\272\256/index.html" @@ -0,0 +1,956 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 王亮 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

王亮

+
+ + +
+
+ + + + + + +
+

最新

+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/authors/\347\216\213\344\272\256/index.xml" "b/authors/\347\216\213\344\272\256/index.xml" new file mode 100644 index 00000000..b8012f3d --- /dev/null +++ "b/authors/\347\216\213\344\272\256/index.xml" @@ -0,0 +1,172 @@ + + + + 王亮 | GMT 中文社区 + https://gmt-china.org/authors/%E7%8E%8B%E4%BA%AE/ + + 王亮 + Wowchemy (https://wowchemy.com)zh-HansTue, 17 Oct 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 王亮 + https://gmt-china.org/authors/%E7%8E%8B%E4%BA%AE/ + + + + GMT 中文社区第三次线下聚餐 + https://gmt-china.org/blog/gud-20171017/ + Tue, 17 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/gud-20171017/ + <p>金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。</p> +<p>2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。</p> +<p>在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。</p> +<p>希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。</p> +<p>科研道路上,知己天涯若比邻,期待下次再聚~</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp 400w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp 760w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + +<figure id="figure-从左至右依次为章浩东中科院地质与地球物理所王志伟地震局地质研究所王少卿地震局地球物理所-张琰地震局地球物理所张周广州地化所徐荟地震局地球物理所王亮成都理工杨晓瑜地震局地球物理所李佳威地震局地球物理所北大神秘人田冬冬中科大任昱南海所方洪健中科大胡少乾中科大"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所&#43;北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)" srcset=" + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp 400w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp 760w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp" + width="760" + height="493" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) + </figcaption></figure> + + + + + 投稿须知 + https://gmt-china.org/blog/instructions-for-authors/ + Thu, 17 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/instructions-for-authors/ + <p>GMT 中文社区欢迎读者投稿,稿件主要包括社区博文和绘图实例两大类。</p> +<h2 id="稿件类型">稿件类型</h2> +<h3 id="社区博文">社区博文</h3> +<p>社区博文是与 GMT 官方及社区活动有关的简短文章,包括但不限于:</p> +<ol> +<li>GMT 官方新闻(比如新版本发布)</li> +<li>GMT 社区新闻(比如聚餐与培训)</li> +<li>GMT 使用技巧等</li> +</ol> +<h3 id="绘图实例">绘图实例</h3> +<p>绘图实例是指使用 GMT 绘制的具有典型性的图件。 +目前社区维护的绘图实例位于 +<a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文手册:绘图实例</a>中。</p> +<p>请参考<a href="https://docs.gmt-china.org/latest/contributing/" target="_blank" rel="noopener">GMT 中文手册:贡献指南</a>, +直接向中文手册提交绘图实例。</p> +<h2 id="投稿方式">投稿方式</h2> +<p>可以通过如下几种方式投稿:</p> +<ol> +<li>直接在 <a href="https://github.com/gmt-china/gmt-china.org" target="_blank" rel="noopener">社区主页</a> +或 <a href="https://github.com/gmt-china/GMT_docs" target="_blank" rel="noopener">GMT中文手册</a> 的 GitHub 仓库中 +提交 Issue 或 Pull Request。 +(不熟悉 Pull Request 的读者可以参考 <a href="https://seismo-learn.org/contributing/pull-request/" target="_blank" rel="noopener">Pull Request 流程</a></li> +<li>将稿件发送至 <a href="mailto:admin@gmt-china.org">admin@gmt-china.org</a></li> +</ol> +<h2 id="作者权益">作者权益</h2> +<p>请确保你有将稿件投稿到社区的权利,特别是在图件修改自他人图件的情况下。 +你所拥有的权益是稿件公开后,你有署名权(如果维护者对你的稿件有大改, +则维护者可能会在你的名字后面署名)。接受的稿件在公开后,任何人对你的稿件都可以 +以任何媒介以任何形式进行复制、发行、修改、转换或以其为基础进行再创作用于任何 +可能的用途,包括商业目的。别人在使用你的作品之后,应当提及你和 GMT 中文社区, +但社区无法保证第三方会尊重你的权益。</p> + + + + + GMT中文社区首次线下聚餐 + https://gmt-china.org/blog/gud-20160628/ + Sat, 24 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160628/ + <p>2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。</p> +<p>6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 +“首届中国区域地震学参考模型交流会”。 +社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。</p> +<p>6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 +在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。</p> + + + + + + + + + + + + + + + + +<figure id="figure-左至右依次为李佳威中国地震局地球物理研究所王志伟中国地震局地质研究所田冬冬中国科学技术大学王亮桂林理工大学李君中国地震局第二监测中心"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心" srcset=" + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp 400w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp 760w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 + </figcaption></figure> + + + + diff --git "a/authors/\347\275\227\345\250\234/index.html" "b/authors/\347\275\227\345\250\234/index.html" new file mode 100644 index 00000000..7dd57a05 --- /dev/null +++ "b/authors/\347\275\227\345\250\234/index.html" @@ -0,0 +1,952 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 罗娜 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

罗娜

+
+ + +
+
+ + + + + + +
+

最新

+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/authors/\347\275\227\345\250\234/index.xml" "b/authors/\347\275\227\345\250\234/index.xml" new file mode 100644 index 00000000..742b2e43 --- /dev/null +++ "b/authors/\347\275\227\345\250\234/index.xml" @@ -0,0 +1,220 @@ + + + + 罗娜 | GMT 中文社区 + https://gmt-china.org/authors/%E7%BD%97%E5%A8%9C/ + + 罗娜 + Wowchemy (https://wowchemy.com)zh-HansTue, 27 Sep 2016 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 罗娜 + https://gmt-china.org/authors/%E7%BD%97%E5%A8%9C/ + + + + GMT中文社区第二次线下聚餐 + https://gmt-china.org/blog/gud-20160921/ + Tue, 27 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160921/ + <p>2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 +刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), +四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。</p> +<p>聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 +被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 +欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 +工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 +腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 +将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, +并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 +和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 +仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!</p> +<p>随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 +全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 +此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” +美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。</p> +<p>GMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, +为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 +遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 +一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, +但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!</p> + + + + + + + + + + + + + + + + +<figure id="figure-参会人员从左往右依次为章婷湖北省地震局刘珠妹中国地震局地震研究所王丽霞中国地震局兰州地震研究所杨萍中国地震局兰州地震研究所郑海刚安徽省地震局谢小晋中国地质大学-武汉贾媛山东省地震局杨锦玲福建省地震局田冬冬中国科学技术大学肖晓武汉大学赵志远河北省地震局刘旭耀中国地质大学-武汉罗娜河北省地震局邓明莉中国科学院测量与地球物理研究所刘成利中国地质大学-武汉单斌中国地质大学-武汉"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉)" srcset=" + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp 400w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp 760w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) + </figcaption></figure> + + + + + GMT中文社区首次线下培训 + https://gmt-china.org/blog/gmtcon-20160921/ + Sun, 25 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmtcon-20160921/ + <p>2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。</p> +<p>此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 +单斌(中国地质大学特任教授,社区 ID:Bins)和 +刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 +做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 +专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。</p> +<p>此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, +经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 +讲座的最终主题。</p> +<p>21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, +随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 +学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 +仁人志士加入到GMT社区的设计和日常维护中。</p> +<p>单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 +编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 +最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 +分享交流。</p> +<p>22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 +使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, +介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 +二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, +具体问题具体分析,带着问题去找答案。</p> +<p>此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, +推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, +促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, +此次培训取得了预期效果,期待下一次培训的召开。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="田冬冬" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="单斌" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="刘珠妹" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="现场互动" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + diff --git "a/authors/\350\265\265\345\277\227\350\277\234/index.html" "b/authors/\350\265\265\345\277\227\350\277\234/index.html" new file mode 100644 index 00000000..90d89883 --- /dev/null +++ "b/authors/\350\265\265\345\277\227\350\277\234/index.html" @@ -0,0 +1,952 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 赵志远 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

赵志远

+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/authors/\350\265\265\345\277\227\350\277\234/index.xml" "b/authors/\350\265\265\345\277\227\350\277\234/index.xml" new file mode 100644 index 00000000..ad15d3be --- /dev/null +++ "b/authors/\350\265\265\345\277\227\350\277\234/index.xml" @@ -0,0 +1,320 @@ + + + + 赵志远 | GMT 中文社区 + https://gmt-china.org/authors/%E8%B5%B5%E5%BF%97%E8%BF%9C/ + + 赵志远 + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 赵志远 + https://gmt-china.org/authors/%E8%B5%B5%E5%BF%97%E8%BF%9C/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + GMT5在Windows下提示无法创建用户目录的解决办法 + https://gmt-china.org/blog/user-directory-warning/ + Fri, 27 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/user-directory-warning/ + <p>GMT5的某些版本(&lt;5.4.4)在某些特定的Windows下会出现如下警告信息:</p> +<pre tabindex="0"><code>gmt: Unable to create GMT User directory : /Users/用户名/.gmt +gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled. +</code></pre><p>这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 +在于,当前系统没有定义环境变量 <code>HOME</code>,进而导致GMT无法知道当前计算机的主目录的 +具体位置。</p> +<p>虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 +解决办法是:</p> +<pre tabindex="0"><code>1、打开 “我的电脑”-&gt;“属性”-&gt;“高级系统设置”-&gt;“环境变量” +2、新建 “系统变量” + 变量名: HOME + 变量值: C:\Users\用户名 +</code></pre><p>重新运行GMT检查问题是否得到解决,可能需要重启计算机。</p> +<p>经测试,<code>HOME</code> 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, +执行脚本后会生成 <code>%HOME%/.gmt/cache</code> 空文件夹。</p> + + + + + diff --git "a/authors/\351\231\210\347\256\253\347\277\260/index.html" "b/authors/\351\231\210\347\256\253\347\277\260/index.html" new file mode 100644 index 00000000..82867e06 --- /dev/null +++ "b/authors/\351\231\210\347\256\253\347\277\260/index.html" @@ -0,0 +1,948 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 陈箫翰 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

陈箫翰

+
+ + +
+
+ + + + + + +
+

最新

+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/authors/\351\231\210\347\256\253\347\277\260/index.xml" "b/authors/\351\231\210\347\256\253\347\277\260/index.xml" new file mode 100644 index 00000000..6b5131b4 --- /dev/null +++ "b/authors/\351\231\210\347\256\253\347\277\260/index.xml" @@ -0,0 +1,387 @@ + + + + 陈箫翰 | GMT 中文社区 + https://gmt-china.org/authors/%E9%99%88%E7%AE%AB%E7%BF%B0/ + + 陈箫翰 + Wowchemy (https://wowchemy.com)zh-HansSun, 15 Apr 2018 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 陈箫翰 + https://gmt-china.org/authors/%E9%99%88%E7%AE%AB%E7%BF%B0/ + + + + 2021版1:100万全国标准基础地理数据!你值得拥有 + https://gmt-china.org/blog/national-geographic-database/ + Sun, 15 Apr 2018 00:00:00 +0000 + https://gmt-china.org/blog/national-geographic-database/ + <p>本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。</p> +<p>具体包括:</p> +<ul> +<li>国家标准1:100万(非涉密)基础地理数据的申请、下载</li> +<li>数据集内容简介</li> +<li>数据集要素合并、提取及格式转换</li> +</ul> +<div class="alert alert-info"> + <div> + 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 +《地图管理条例》有关规定依法履行地图审核程序。 + </div> +</div> +<h2 id="数据概况">数据概况</h2> +<p>国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:</p> +<ul> +<li>共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。</li> +<li>包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。</li> +</ul> +<p>数据更多介绍可访问<a href="http://www.webmap.cn/commres.do?method=result100W" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>。</p> +<h2 id="数据获取">数据获取</h2> +<ul> +<li>进入<a href="http://www.webmap.cn" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>,点右上角“注册”。已注册用户直接登陆。</li> +<li>在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。</li> +<li>该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。</li> +<li>结算,填写订单中的个人信息,<strong>验证手机号</strong>,下载数据。 +**注:**若未提示验证手机,换个firefox浏览器试试。</li> +</ul> +<h2 id="数据集内容简介">数据集内容简介</h2> +<p>该数据集包括5类12个要素集,如下图所示:</p> + + + + + + + + + + + + + + + + +<figure id="figure-全国基础地理数据库数据集"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="全国基础地理数据库数据集" srcset=" + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp 400w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp 760w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp" + width="760" + height="282" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 全国基础地理数据库数据集 + </figcaption></figure> +<p>每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:</p> +<p><strong>BOUL 中国及邻区各级行政界限(线)图层</strong></p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="BOUL" srcset=" + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp 400w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp 760w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp" + width="760" + height="616" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>该数据集包括各级行政区界线,以GB码进行区分:</p> +<table> +<thead> +<tr> +<th>行政区界类型</th> +<th>GB码</th> +</tr> +</thead> +<tbody> +<tr> +<td>海岸线</td> +<td>250200</td> +</tr> +<tr> +<td>水系交汇处</td> +<td>260100</td> +</tr> +<tr> +<td>外国地区国界线</td> +<td>610200</td> +</tr> +<tr> +<td>国界线(已定)</td> +<td>620201</td> +</tr> +<tr> +<td>国界线(未定)</td> +<td>620202</td> +</tr> +<tr> +<td>省级界线</td> +<td>630200</td> +</tr> +<tr> +<td>特别行政区界</td> +<td>630400</td> +</tr> +<tr> +<td>地、市、州级行政区界</td> +<td>640200</td> +</tr> +<tr> +<td>县级行政区界</td> +<td>650200</td> +</tr> +<tr> +<td>特殊地区界限</td> +<td>670202</td> +</tr> +</tbody> +</table> +<p>其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。</p> +<p>此外,常用的还有 <strong>AGNP 各级行政地名和城乡居民地坐标(点)图层</strong></p> +<p>行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:</p> +<table> +<thead> +<tr> +<th>行政地名点类型</th> +<th>CLASS类别</th> +</tr> +</thead> +<tbody> +<tr> +<td>国名</td> +<td>AA</td> +</tr> +<tr> +<td>省(直辖市、自治区、特别行政区)行政地名</td> +<td>AB</td> +</tr> +<tr> +<td>自治州、盟、地区行政地名</td> +<td>AC</td> +</tr> +<tr> +<td>地级市行政地名</td> +<td>AD</td> +</tr> +<tr> +<td>县级市行政地名</td> +<td>AE</td> +</tr> +<tr> +<td>县(自治县、旗、自治旗、地级市市辖区)级市行政地名</td> +<td>AF</td> +</tr> +<tr> +<td>县辖区及县级行政区域的派出机构地名</td> +<td>AG</td> +</tr> +<tr> +<td>街道办事处地名</td> +<td>AH</td> +</tr> +<tr> +<td>镇行政地名</td> +<td>AI</td> +</tr> +<tr> +<td>乡行政地名</td> +<td>AJ</td> +</tr> +<tr> +<td>建制村地名</td> +<td>AK</td> +</tr> +<tr> +<td>城镇区片、小区名</td> +<td>BA</td> +</tr> +<tr> +<td>自然村、屯、片村、村民小组名</td> +<td>BB</td> +</tr> +<tr> +<td>牧点、渔点、棚房名</td> +<td>BC</td> +</tr> +<tr> +<td>其它</td> +<td>BD</td> +</tr> +<tr> +<td>党政机关、党派团体名</td> +<td>CA</td> +</tr> +<tr> +<td>企事业单位名</td> +<td>CB</td> +</tr> +<tr> +<td>农、林、牧、渔场</td> +<td>CC</td> +</tr> +</tbody> +</table> +<h2 id="数据处理">数据处理</h2> +<p>从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:</p> +<ul> +<li>合并77个gdb文件中的同类要素</li> +<li>提取某类要素中的某个等级数据</li> +<li>转为gmt识别的文本格式</li> +</ul> +<h3 id="gdb数据库文件合并">gdb数据库文件合并</h3> +<p>采用本社区一贯推荐的<a href="https://docs.gmt-china.org/latest/utilities/gdal/" target="_blank" rel="noopener">GDAL/ORG库</a>将分幅的gdb数据进行批量合并。 +首先解压所有下载的压缩包,得到以<code>.gdb</code>结尾的目录。目录名类似<code>H51.gdb</code>、<code>I49.gdb</code>等。 +然后在这些目录的上级目录执行以下脚本:</p> +<p>Linux系统: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;./final&#34;</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> i in <span class="k">$(</span>ls -d *.gdb<span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> ! -d <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> <span class="o">]</span> +</span></span><span class="line"><span class="cl"> <span class="k">then</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;creating final filefolder&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -lco <span class="nv">encoding</span><span class="o">=</span>UTF-8 +</span></span><span class="line"><span class="cl"> <span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;merging……&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -update -append +</span></span><span class="line"><span class="cl"><span class="k">fi</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span></code></pre></div></p> +<p>Windows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bat" data-lang="bat"><span class="line"><span class="cl"><span class="c1">REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged</span> +</span></span><span class="line"><span class="cl"><span class="c1">REM 编码为UTF-8以正确显示属性字段中的中文</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -lco encoding=UTF-8 Merged A49.gdb +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="k">/f</span> <span class="se">%%</span>i <span class="k">in</span> <span class="p">(</span><span class="s1">&#39;dir /b &#34;*.gdb&#34;&#39;</span><span class="p">)</span> <span class="k">do</span> <span class="p">(</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -update -append Merged <span class="se">%%</span>i +</span></span><span class="line"><span class="cl"><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">pause</span> +</span></span></code></pre></div></p> +<p>若安装有python环境,还可选择<code>ogrmerge.py</code>工具进行批量的格式转换和合并,详见<a href="https://www.gdal.org/ogrmerge.html" target="_blank" rel="noopener">ogrmerge使用手册</a>。</p> +<p>该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。</p> +<h3 id="查询gb代码与class类别">查询GB代码与CLASS类别</h3> +<p>使用<code>ogrinfo</code>可以查询shp文件内包含哪些要素。例如以下命令查询<code>BOUL.shp</code>中包含的GB代码:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct GB FROM BOUL&#34; BOUL.shp +</code></pre><p>而以下命令则查询<code>AGNP.shp</code>中包含的CLASS类别:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct CLASS FROM AGNP&#34; AGNP.shp +</code></pre><h3 id="提取某类要素">提取某类要素</h3> +<p>由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用<code>ogr2ogr</code>工具提供的sql查询选项进行提取。</p> +<p>例如:</p> +<p>行政区划<code>BOUL</code>图层中GB代码<code>620201</code>、<code>620202</code>、<code>250200</code>分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;GB=620201 or GB=620202 or GB=250200&#34; BOUL_sub.gmt BOUL.shp +</code></pre><p>最后GMT绘图如下:</p> +<pre tabindex="0"><code>gmt begin ChinaMap + gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i +gmt end show +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="ChinaMap" srcset=" + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp 400w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp 760w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp" + width="760" + height="721" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>如果想要提取行政地名点<code>AGNP</code>图层中的建制村信息(对应CLASS为AK),则使用:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;CLASS=&#39;AK&#39;&#34; AGNP.gmt AGNP.shp +</code></pre><p>注意因为CLASS类别为字符串,所以此处<code>AK</code>需要加上引号。GB代码为整型数因而不需要加引号。</p> +<p>最后转换成的GMT格式数据如下:</p> +<pre tabindex="0"><code>... +# @NCLASS|NAME|PINYIN|GNID|XZNAME +# @Tstring|string|string|string|string +# FEATURE_DATA +# @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡 +121.68517089 29.388652295 +# @DAK|坝头村|Batoucun|331022000000|亭旁镇 +121.310746425 29.0109724900001 +# @DAK|白岩村|Baiyancun|331082111028|尤溪镇 +120.971417165 28.7226002200001 +# @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道 +121.257111875 28.8522451100001 +... +</code></pre><p>以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:</p> +<pre tabindex="0"><code>gmt begin AGNP jpg + gmt set PS_CHAR_ENCODING Standard+ + + gmt basemap -R120/121/28/29 -JM10c -Baf + gmt grdimage @earth_relief_15s -Cgeo + gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt + chcp 936 + gmt convert AGNP.gmt -a2=&#34;NAME&#34; | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite +gmt end +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="AGNP" srcset=" + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp 400w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp 760w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp" + width="760" + height="758" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + diff --git a/blog/community-guide/index.html b/blog/community-guide/index.html new file mode 100644 index 00000000..75e0d653 --- /dev/null +++ b/blog/community-guide/index.html @@ -0,0 +1,1307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT 中文社区 QQ 群入群须知 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT 中文社区 QQ 群入群须知

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

欢迎加入“地学GMT中文社区群”:

+

一群:218905582 +
+ 二群:791856541

+

GMT 中文社区群是一个相对活跃且学术氛围浓厚的群。本文是 GMT 中文社区群的入群须知, +也是 GMT 中文社区的提问规范。希望所有群友可以阅读并遵守以下规范来营造更好的群环境。

+
+
+

群内可以做的事

+
    +
  • GMT 相关问题
  • +
  • 其他地学软件相关问题
  • +
  • 地学科研相关问题
  • +
  • 求助文献
  • +
  • 发科研相关的培训、会议信息
  • +
  • 介绍并推广自己的最新研究成果
  • +
+
+
+

群内禁止做的事:

+
    +
  • 发广告
  • +
  • 签到、灌水等无意义行为
  • +
  • 人身攻击
  • +
  • 讨论政治问题
  • +
+
+
+

安装类问题

+

如果你在安装 GMT 的过程中遇到问题,请参照下面的模板提问。

+
+
+

我在安装 GMT 的时候遇到了问题,请问该如何解决?谢谢。

+
    +
  • 操作系统是: Windows XP | Windows 7 | Ubuntu | CentOS | macOS …
  • +
  • 要安装的GMT版本是: GMT 4.5.16 | GMT 5.4.2 …
  • +
  • 安装GMT参考的文档是: 此处可贴文档的网址
  • +
  • 安装过程中显示的错误信息为: 此处可贴图
  • +
+
+
+

思路类问题

+

想要实现某一类图,但不知GMT能否实现或没有实现的思路。

+

如果别人文章中有自己想要实现的效果图就直接贴图,并指出自己在实现图中哪一部分 +时没有思路。如果找不到已有的效果图,可以考虑手绘示意图,或精准描述自己想要的 +效果,以免引起误会,造成不必要的时间浪费。

+
+
+

此处先贴一张图

+

请问图中的XXXXX能否用GMT实现?该如何实现?谢谢。

+
+
+
+
+ 请问我想用GMT实现XXX效果。此处详细介绍自己想要的效果 。不知GMT中该如何实现? +谢谢。 +
+
+

如果遇到自己画出来的图与自己预期的图不一致,请参考如下模板。

+
+
+
    +
  • 当前效果:截图
  • +
  • 预期效果:预期效果截图,或对预期效果的精确描述
  • +
  • 我的代码是:给出自己使用的代码,可以截图可以贴代码。最好是给出最小示例而不是一堆代码。
  • +
  • GMT版本是: GMT 5.4.2
  • +
+
+
+

脚本报错类

+

遇到绘图脚本或数据处理脚本出错时,请参考如下模板。

+
+
+
    +
  • 我想要实现的是 :…
  • +
  • 我的命令/脚本是: 可截图或贴脚本
  • +
  • 终端报错是: 终端报错截图
  • +
+
+
+

文献求助

+

需要他人帮忙下载文献时,请先使用 sci-hub 工具自行尝试下载 +(sci-hub教程)。

+

对于中文文献或 sci-hub 无法下载的文献,方可在群中寻找帮助。求助文献时,请先明确 +告知“使用 sci-hub无 法下载该文章”并提供文章的官方链接。若找不到官方链接,则提供 +文章的标题、作者、期刊、年份等信息。

+

求助文献示例如下:

+
+
+ 文献求助!我已经尝试用 sci-hub 下载但依然下载不到。文章链接为: XXXXXXX。谢谢。 +
+
+

提问的智慧

+

时间对任何人都是一笔宝贵的财富。没有人有义务回答你的问题。在期望别人回答你的问题 +之前先要问一问自己针对这个问题做了哪些努力。

+

提问前需要做的事情

+

大多数的问题,文档都可以为你提供标准的解答。因此在你提问之前,你最好先去阅读一下 +相关的文档,至少确保你阅读过一份完整的入门文档。如果你能够在你提问的同时表明 +自己已经阅读过文档,但是依旧留有困惑,潜在的回答者会更加愿意为你解答。

+

推荐的一些文档:

+ +

提问技巧

+
    +
  1. 精确描述自己做了什么,遇到了什么问题,要提供足够的信息给潜在的回答者,尽量避免 +回答者多次要求提问者补充额外的信息的情况。
  2. +
  3. 提供当前所使用的代码。贴完图之后如果自行修正了代码中的某些错误,一定要更新图。
  4. +
  5. 提供截图以及文本。有些时候需要准确看到代码的样子,此时截图更合适;有些时候需要 +复制代码在自己电脑上跑一遍,此时提供文本更合适。
  6. +
  7. 提问时说一说自己为了解决这个问题做了哪些事情,没人喜欢“伸手党”。
  8. +
  9. 时间对任何人都是一笔宝贵的财富,请心怀感恩之心。
  10. +
  11. 当你解决了某个问题(不管是别人帮助还是自己茅塞顿开),请不要吝啬告诉大家你的解决方案
  12. +
  13. 当别人正在讨论某个问题时,请不要中间插入自己的问题,待别人的问题告一段落之后再提问。
  14. +
  15. 除非必要,不要在首次发问的时候@某个人,这样给所有人的感觉是你在向这个人提问, +从而失去了更多的潜在回答者。
  16. +
  17. 有问题就直接问,不必管有没有人用过。很多时候,你在A软件中遇到的问题可能跟A软件 +完全没有关系,完全没接触过A软件的人可能也可以帮你解决该问题。
  18. +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/gmt-china-community-founded/index.html b/blog/gmt-china-community-founded/index.html new file mode 100644 index 00000000..fc292413 --- /dev/null +++ b/blog/gmt-china-community-founded/index.html @@ -0,0 +1,1252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT中文社区正式成立 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT中文社区正式成立

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

GMT的中文用户们,大家好,我是 seisman

+

GMT中文社区于今日正式成立了!

+

GMT中文社区是针对GMT中文用户而成立的社区。整个社区目前包含了三个主要部分: +社区主站、GMT中文手册和问答社区。

+

在社区的第一篇博文中,我想谈谈建立这个社区的原因及一些想法。

+

GMT中文手册

+

GMT中文手册的项目始于2014年,到2016年初已经初步成形。

+

在2014年,网络上能够找到的几本GMT中文文档,大多基于GMT4甚至GMT3。 +这几本文档存在一些明显的缺陷:

+
    +
  1. 排版质量一般,大多是在Word里写好然后转换成PDF的
  2. +
  3. 缺乏维护,几乎都是写好发布之后就没有再更新
  4. +
  5. 不完整,很多有价值的内容都没有被包含在文档中
  6. +
  7. 不严谨,很多文档声称是基于GMT4,但实际上某些命令却在使用GMT3的语法
  8. +
  9. 无法适配最新版的GMT,某些时候对于新用户而言是一种障碍
  10. +
  11. 重复劳动:不同的作者,花费了大量的时间和精力,翻译整理出了几份相似的文档, +这其中很多工作都是在重复劳动
  12. +
+

因而,我于2014年开始写针对GMT5的中文手册。新的GMT中文手册具有如下特点:

+
    +
  1. 开源:源代码用rST语言写成,并在GitHub上开源
  2. +
  3. 高质量排版:文档有网页版和PDF版,保证高质量的排版(目前尚存在不足,见第5条)
  4. +
  5. 完整性:尽可能覆盖GMT的方方面面,成为一个完整的参考手册(没有最完整,只有更完整,见第5条)
  6. +
  7. 协同合作:依托强大的GitHub和Git,使得多人合作共同编辑同一份文档变得很简单
  8. +
  9. 持续维护:不仅适配GMT的新版本,而且不断修正文档中存在的错误
  10. +
  11. 严谨性:尽可能保证所有命令均通过GMT最新版本的测试
  12. +
+

经过两年努力,文档的整体结构已经大体完成。我希望文档今后能够持续更新,不断完善, +不管是接下来的GMT 5.2.2、5.3.0还是未来的GMT 6.0甚至7.0,都能随着GMT版本的升级 +而不断更新,但这些已非我一人之力所能完成。众人拾柴火焰高。我希望有更多的GMT中文 +用户加入到文档维护的队伍中来,这便是我建立GMT中文社区的目的。

+

问答社区

+
+
+ 问答社区试运行了一段时间,但最终还是因为用户参与度较低而决定关闭问答社区。 +
+
+

GMT问答社区的前身是地学GMT学习群(群号:218905582)。QQ群属于即时通讯,通常在 +群中提的问题都可以快速得到答案,但与此同时,QQ群存在如下缺点:

+
    +
  1. 即时性导致的随意性:由于QQ本质上是一种聊天工具,导致很多人在提问时太过随意。 +遇到问题时,不加思索在QQ群中提问,却不去思考如何提问,如何在提问时提供完整 +有效的信息,如何在提问时解释清楚自己想要实现什么和遇到了什么问题。 +QQ群中的很多提问都是如此,需要回答者多次向提问者发问才能搞清楚提问者的问题。 +这不仅浪费了回答者的时间,也不利于提问者能力的提高。
  2. +
  3. 多话题引起的错乱:经常遇到几个人同时提问,几个话题互相交叉,使得搞不清到底谁在回复谁
  4. +
  5. 问答记录无法长期保存:只有用户接收到的消息会被保存到本地磁盘中,而对于 +新加入的成员而言,则无法看到历史聊天记录
  6. +
  7. 问答记录无法搜索:仅当聊天记录保存在本地磁盘中才能被搜索,无法通过搜索引擎检索
  8. +
  9. 问答记录无法被非群成员搜索:有大量的GMT用户未加入群中,这些非成员则无法获取这些优质的问答资源
  10. +
  11. Linux用户提问不便:Linux下几乎没有可用的QQ客户端,导致众多Linux下的GMT用户 +只能通过手机打字在群中提问,且只能通过手机拍照的方式上传屏幕截图
  12. +
+

鉴于QQ群的以上几个缺点,萌生了建立问答社区的想法。希望这样一个问答社区可以解决QQ +群存在的问题。问答社区将努力保持高信噪比,专注于GMT的问与答。

+

GMT中文社区

+

最初是计划把中文手册以及问答社区都放在我自己的博客域名之下的,但这样做一方面 +不够正式,另一方面也会影响到我对于自己博客的整体定位。最终经过一番考量之后, +决定单独购买域名,建立GMT中文社区,然后将文档以及问答社区作为GMT中文社区的子项目。

+

现在,整个GMT中文社区的基本框架已经搭建完毕。我希望它能顺利运行下去,也欢迎 +更多的人提意见和建议,加入到整个社区的维护中来。

+

最后,我要感谢王亮在整个社区的建立过程中和我交流与讨论,并给出了很多有意义的建议。 +我还要感谢各种开源服务,我的工作是建立在它们之上的。我也希望华语地学界有更多的 +人了解开源、认同开源、热爱开源并最终参与到开源中来。

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/gmtcon-20160921/GMTCon20160921-1.jpg b/blog/gmtcon-20160921/GMTCon20160921-1.jpg new file mode 100644 index 00000000..9ef23e5f Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-1.jpg differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp b/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..7c890659 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp b/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp new file mode 100644 index 00000000..9b95d3a8 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp b/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp new file mode 100644 index 00000000..377563fe Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-2.jpg b/blog/gmtcon-20160921/GMTCon20160921-2.jpg new file mode 100644 index 00000000..9b5ec71f Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-2.jpg differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp b/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..80929f18 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp b/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp new file mode 100644 index 00000000..1d9c08cf Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp b/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp new file mode 100644 index 00000000..1977b9d5 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-3.jpg b/blog/gmtcon-20160921/GMTCon20160921-3.jpg new file mode 100644 index 00000000..2fd8a68a Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-3.jpg differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp b/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..b3cd82c3 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp b/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp new file mode 100644 index 00000000..a358d846 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp b/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp new file mode 100644 index 00000000..903f086c Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-4.jpg b/blog/gmtcon-20160921/GMTCon20160921-4.jpg new file mode 100644 index 00000000..0531c1c6 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-4.jpg differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp b/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..d16dee8b Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp b/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp new file mode 100644 index 00000000..0b7b6ba6 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp differ diff --git a/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp b/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp new file mode 100644 index 00000000..f4883ad8 Binary files /dev/null and b/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp differ diff --git a/blog/gmtcon-20160921/featured.jpg b/blog/gmtcon-20160921/featured.jpg new file mode 100644 index 00000000..0531c1c6 Binary files /dev/null and b/blog/gmtcon-20160921/featured.jpg differ diff --git a/blog/gmtcon-20160921/featured_hu544bc5678527035feead4557d8b92eb3_385829_150x0_resize_q75_h2_lanczos.webp b/blog/gmtcon-20160921/featured_hu544bc5678527035feead4557d8b92eb3_385829_150x0_resize_q75_h2_lanczos.webp new file mode 100644 index 00000000..55caa3e7 Binary files /dev/null and b/blog/gmtcon-20160921/featured_hu544bc5678527035feead4557d8b92eb3_385829_150x0_resize_q75_h2_lanczos.webp differ diff --git a/blog/gmtcon-20160921/index.html b/blog/gmtcon-20160921/index.html new file mode 100644 index 00000000..a7770113 --- /dev/null +++ b/blog/gmtcon-20160921/index.html @@ -0,0 +1,1335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT中文社区首次线下培训 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT中文社区首次线下培训

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。

+

此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 +单斌(中国地质大学特任教授,社区 ID:Bins)和 +刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 +做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 +专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。

+

此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, +经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 +讲座的最终主题。

+

21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, +随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 +学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 +仁人志士加入到GMT社区的设计和日常维护中。

+

单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 +编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 +最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 +分享交流。

+

22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 +使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, +介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 +二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, +具体问题具体分析,带着问题去找答案。

+

此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, +推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, +促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, +此次培训取得了预期效果,期待下一次培训的召开。

+

+ + + + + + + + + + + + + + + +

+
+
田冬冬
+
+ + + + + + + + + + + + + + + + + +
+
+
单斌
+
+ + + + + + + + + + + + + + + + + +
+
+
刘珠妹
+
+ + + + + + + + + + + + + + + + + +
+
+
现场互动
+
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/google-maps-elevation-api/index.html b/blog/google-maps-elevation-api/index.html new file mode 100644 index 00000000..e2ac9612 --- /dev/null +++ b/blog/google-maps-elevation-api/index.html @@ -0,0 +1,1321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 利用 Google Maps 获取超高精度高程数据 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

利用 Google Maps 获取超高精度高程数据

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

在绘制超小区域的地形图时,常需要超高精度的高程数据。

+

目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 +可以通过 Google Maps Elevation API 获取米级精度的数据。

+

数据简介

+

Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 +置(此类位置返回负值)。

+

官方文档:

+ +

获取密钥 API KEY

+

想要从Google Maps中获取地形数据,首先需要一个密钥。 +可以从 get API key +页面开始申请秘钥(需要提供信用卡等信息)。

+

限额说明:

+
    +
  • 每个用户最多可能只能申请10个免费密钥
  • +
  • 每个密钥每天2500次免费请求
  • +
  • 每次请求最多512个位置
  • +
  • 每秒最多50次请求
  • +
+

使用说明

+

获取单点高程

+

通过简单的网络请求即可获取单点的高程:

+
https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key=YOUR_API_KEY
+

其中:

+
    +
  • locations=39.7391536,-104.9847034 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔;
  • +
  • key=YOU_API_KEY 指定了用户密钥,用户需要将自己申请的密钥替换 YOU_API_KEY
  • +
+

将上面的链接复制到浏览器中,即可得到返回值为::

+
{
+   "results" : [
+        {
+            "elevation" : 1608.637939453125,
+            "location" : {
+                "lat" : 39.73915360,
+                "lng" : -104.98470340
+            },
+            "resolution" : 4.771975994110107
+        }
+   ],
+   "status" : "OK"
+}
+
+

从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 +resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。

+

获取多点高程

+

也可以在一次网络请求中获取多个点的高程,多个位置之间用 | 分隔即可。例如:

+
https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY
+

但一次请求中的位置不能超过512个。

+

批量获取高程

+

Google Maps 提供了多种客户端以实现批量获取高程。 +此处以Python客户端 为例。

+
    +
  1. +

    安装 Google Map API 的 Python模块:

    +
     $ pip install -U googlemaps
    +
    +
  2. +
  3. +

    获取密钥

    +
  4. +
  5. +

    参考如下脚本批量获取高程数据

    +
  6. +
+
#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import googlemaps
+import numpy as np
+
+
+def request_elevation(xmin, xmax, xinc, ymin, ymax, yinc, maxnum=512):
+    """Request elevation and return them with a list
+
+    Parameter
+    =========
+    xmin : float
+        minimum longitude, unit is degree
+    xmax : float
+        maximum longitude, unit is degree
+    xinc : float
+        increment of longitude
+
+    ymin : float
+        minimum latitude, unit is degree
+    ymax : float
+        maximum latitude, unit is degree
+    yinc : float
+        increment of latitude
+    maxnum : int
+        point number of one request, maximum value is 512
+    """
+
+    xlist = np.arange(xmin, xmax, xinc)
+    ylist = np.arange(ymin, ymax, yinc)
+    points = [(y, x) for y in ylist for x in xlist]
+
+    requestnum = int(np.floor(len(points) / maxnum) + 1)
+    npoints = np.array_split(points, requestnum)
+    if requestnum > 2500:
+        print("Error: Request number exceed! Change grid or region.")
+
+    return [gmaps.elevation(locations=loc.tolist()) for loc in npoints]
+
+
+# 设置要下载高程数据的经度范围、纬度范围以及网格间隔
+xmin, xmax, xinc = 120.000, 129.005, 0.00005
+ymin, ymax, yinc = 30.000, 30.005, 0.00005
+
+gmaps = googlemaps.Client(key='YOU_API_KEY')
+
+# Obtain all elevations
+# 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度
+elevations = request_elevation(xmin, xmax, xinc, ymin, ymax, yinc, maxnum=512)
+
+# output data with format `longitude   latitude elevation resolution`
+with open("Elevations.dat", "w") as f:
+    for loclist in elevations:
+        for subloc in loclist:
+            outputstr = "{:.5f}  {:.5f}  {:.5f}  {:.5f}\n".format(
+                subloc['location']['lng'],
+                subloc['location']['lat'],
+                subloc['elevation'],
+                subloc['resolution'])
+            f.writelines(outputstr)
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/gud-20160628/GUD-20160628.jpg b/blog/gud-20160628/GUD-20160628.jpg new file mode 100644 index 00000000..672aed9f Binary files /dev/null and b/blog/gud-20160628/GUD-20160628.jpg differ diff --git a/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp b/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..95d1f204 Binary files /dev/null and b/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp b/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp new file mode 100644 index 00000000..84ac0d86 Binary files /dev/null and b/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp differ diff --git a/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp b/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp new file mode 100644 index 00000000..6246ccc3 Binary files /dev/null and b/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp differ diff --git a/blog/gud-20160628/featured.jpg b/blog/gud-20160628/featured.jpg new file mode 100644 index 00000000..672aed9f Binary files /dev/null and b/blog/gud-20160628/featured.jpg differ diff --git a/blog/gud-20160628/featured_huc804dcc579c6cbb80b51109e35ac1af5_240262_150x0_resize_q75_h2_lanczos.webp b/blog/gud-20160628/featured_huc804dcc579c6cbb80b51109e35ac1af5_240262_150x0_resize_q75_h2_lanczos.webp new file mode 100644 index 00000000..6e7a1c19 Binary files /dev/null and b/blog/gud-20160628/featured_huc804dcc579c6cbb80b51109e35ac1af5_240262_150x0_resize_q75_h2_lanczos.webp differ diff --git a/blog/gud-20160628/index.html b/blog/gud-20160628/index.html new file mode 100644 index 00000000..a173d8be --- /dev/null +++ b/blog/gud-20160628/index.html @@ -0,0 +1,1229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT中文社区首次线下聚餐 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT中文社区首次线下聚餐

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。

+

6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 +“首届中国区域地震学参考模型交流会”。 +社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。

+

6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 +在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。

+ + + + + + + + + + + + + + + + +
+
+
左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心
+
+ 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/gud-20160921/GUD-20160921.png b/blog/gud-20160921/GUD-20160921.png new file mode 100644 index 00000000..0865cd6a Binary files /dev/null and b/blog/gud-20160921/GUD-20160921.png differ diff --git a/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..65eead2a Binary files /dev/null and b/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp b/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp new file mode 100644 index 00000000..638d17f5 Binary files /dev/null and b/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp differ diff --git a/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp b/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp new file mode 100644 index 00000000..4294011e Binary files /dev/null and b/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp differ diff --git a/blog/gud-20160921/index.html b/blog/gud-20160921/index.html new file mode 100644 index 00000000..9e080126 --- /dev/null +++ b/blog/gud-20160921/index.html @@ -0,0 +1,1242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT中文社区第二次线下聚餐 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT中文社区第二次线下聚餐

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 +刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), +四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。

+

聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 +被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 +欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 +工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 +腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 +将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, +并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 +和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 +仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!

+

随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 +全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 +此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” +美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。

+

GMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, +为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 +遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 +一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, +但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!

+ + + + + + + + + + + + + + + + +
+
+
参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉)
+
+ 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/gud-20171017/GUD-20171017-1.jpg b/blog/gud-20171017/GUD-20171017-1.jpg new file mode 100644 index 00000000..b3944343 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-1.jpg differ diff --git a/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp b/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..0695f187 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp b/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp new file mode 100644 index 00000000..ee17a5a2 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp differ diff --git a/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp b/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp new file mode 100644 index 00000000..93452bf6 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp differ diff --git a/blog/gud-20171017/GUD-20171017-2.jpg b/blog/gud-20171017/GUD-20171017-2.jpg new file mode 100644 index 00000000..bd959b37 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-2.jpg differ diff --git a/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp b/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..e432f93f Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp b/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp new file mode 100644 index 00000000..d8814928 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp differ diff --git a/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp b/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp new file mode 100644 index 00000000..2179c7b1 Binary files /dev/null and b/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp differ diff --git a/blog/gud-20171017/featured.jpg b/blog/gud-20171017/featured.jpg new file mode 100644 index 00000000..b3944343 Binary files /dev/null and b/blog/gud-20171017/featured.jpg differ diff --git a/blog/gud-20171017/featured_hu98a170cf69d9caf04998715da44e1a7b_797881_150x0_resize_q75_h2_lanczos.webp b/blog/gud-20171017/featured_hu98a170cf69d9caf04998715da44e1a7b_797881_150x0_resize_q75_h2_lanczos.webp new file mode 100644 index 00000000..a166d902 Binary files /dev/null and b/blog/gud-20171017/featured_hu98a170cf69d9caf04998715da44e1a7b_797881_150x0_resize_q75_h2_lanczos.webp differ diff --git a/blog/gud-20171017/featured_hu98a170cf69d9caf04998715da44e1a7b_797881_720x2500_fit_q75_h2_lanczos.webp b/blog/gud-20171017/featured_hu98a170cf69d9caf04998715da44e1a7b_797881_720x2500_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..2effeb58 Binary files /dev/null and b/blog/gud-20171017/featured_hu98a170cf69d9caf04998715da44e1a7b_797881_720x2500_fit_q75_h2_lanczos.webp differ diff --git a/blog/gud-20171017/index.html b/blog/gud-20171017/index.html new file mode 100644 index 00000000..b9b547b7 --- /dev/null +++ b/blog/gud-20171017/index.html @@ -0,0 +1,1283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT 中文社区第三次线下聚餐 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

GMT 中文社区第三次线下聚餐

+ + + + + + + + + + + + + + +
+ + +
+
+ + +
+
+ + + +
+ +
+

金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。

+

2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。

+

在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。

+

希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。

+

科研道路上,知己天涯若比邻,期待下次再聚~

+ + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + +
+
+
从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)
+
+ 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 00000000..03124057 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,2000 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 博客 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

博客

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT脚本执行利器——VS Code +
+ + + +
+ Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 2021版1:100万全国标准基础地理数据!你值得拥有 +
+ + + +
+

本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。

+
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT5在Windows下提示无法创建用户目录的解决办法 +
+ + + +
+ 如何解决“无法创建用户目录”的问题? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT 中文社区第三次线下聚餐 +
+ + + +
+ 2017年10月,GMT中文社区在北京举行了第三个线下聚餐。 +
+
+ + + + + + +
+
+ + + + + GMT 中文社区第三次线下聚餐 + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 利用 Google Maps 获取超高精度高程数据 +
+ + + +
+ 如何获得米级精度的高程数据? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT 中文社区 QQ 群入群须知 +
+ + + +
+ 如何在 QQ 群中正确提问? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 投稿须知 +
+ + + +
+ 如何向GMT中文社区投稿? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 使用sci-hub下载文献 +
+ + + +
+ 教你如何用sci-hub下载文献 +
+
+ + + + + + +
+
+ + + + + 使用sci-hub下载文献 + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区第二次线下聚餐 +
+ + + +
+ GMT中文社区在湖北武汉组织了第二次线下聚餐。 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区首次线下培训 +
+ + + +
+

2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。

+
+
+ + + + + + +
+
+ + + + + GMT中文社区首次线下培训 + + +
+
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/index.xml b/blog/index.xml new file mode 100644 index 00000000..eb551a7a --- /dev/null +++ b/blog/index.xml @@ -0,0 +1,1518 @@ + + + + 博客 | GMT 中文社区 + https://gmt-china.org/blog/ + + 博客 + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 博客 + https://gmt-china.org/blog/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + 2021版1:100万全国标准基础地理数据!你值得拥有 + https://gmt-china.org/blog/national-geographic-database/ + Sun, 15 Apr 2018 00:00:00 +0000 + https://gmt-china.org/blog/national-geographic-database/ + <p>本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。</p> +<p>具体包括:</p> +<ul> +<li>国家标准1:100万(非涉密)基础地理数据的申请、下载</li> +<li>数据集内容简介</li> +<li>数据集要素合并、提取及格式转换</li> +</ul> +<div class="alert alert-info"> + <div> + 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 +《地图管理条例》有关规定依法履行地图审核程序。 + </div> +</div> +<h2 id="数据概况">数据概况</h2> +<p>国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:</p> +<ul> +<li>共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。</li> +<li>包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。</li> +</ul> +<p>数据更多介绍可访问<a href="http://www.webmap.cn/commres.do?method=result100W" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>。</p> +<h2 id="数据获取">数据获取</h2> +<ul> +<li>进入<a href="http://www.webmap.cn" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>,点右上角“注册”。已注册用户直接登陆。</li> +<li>在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。</li> +<li>该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。</li> +<li>结算,填写订单中的个人信息,<strong>验证手机号</strong>,下载数据。 +**注:**若未提示验证手机,换个firefox浏览器试试。</li> +</ul> +<h2 id="数据集内容简介">数据集内容简介</h2> +<p>该数据集包括5类12个要素集,如下图所示:</p> + + + + + + + + + + + + + + + + +<figure id="figure-全国基础地理数据库数据集"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="全国基础地理数据库数据集" srcset=" + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp 400w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp 760w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp" + width="760" + height="282" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 全国基础地理数据库数据集 + </figcaption></figure> +<p>每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:</p> +<p><strong>BOUL 中国及邻区各级行政界限(线)图层</strong></p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="BOUL" srcset=" + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp 400w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp 760w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp" + width="760" + height="616" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>该数据集包括各级行政区界线,以GB码进行区分:</p> +<table> +<thead> +<tr> +<th>行政区界类型</th> +<th>GB码</th> +</tr> +</thead> +<tbody> +<tr> +<td>海岸线</td> +<td>250200</td> +</tr> +<tr> +<td>水系交汇处</td> +<td>260100</td> +</tr> +<tr> +<td>外国地区国界线</td> +<td>610200</td> +</tr> +<tr> +<td>国界线(已定)</td> +<td>620201</td> +</tr> +<tr> +<td>国界线(未定)</td> +<td>620202</td> +</tr> +<tr> +<td>省级界线</td> +<td>630200</td> +</tr> +<tr> +<td>特别行政区界</td> +<td>630400</td> +</tr> +<tr> +<td>地、市、州级行政区界</td> +<td>640200</td> +</tr> +<tr> +<td>县级行政区界</td> +<td>650200</td> +</tr> +<tr> +<td>特殊地区界限</td> +<td>670202</td> +</tr> +</tbody> +</table> +<p>其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。</p> +<p>此外,常用的还有 <strong>AGNP 各级行政地名和城乡居民地坐标(点)图层</strong></p> +<p>行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:</p> +<table> +<thead> +<tr> +<th>行政地名点类型</th> +<th>CLASS类别</th> +</tr> +</thead> +<tbody> +<tr> +<td>国名</td> +<td>AA</td> +</tr> +<tr> +<td>省(直辖市、自治区、特别行政区)行政地名</td> +<td>AB</td> +</tr> +<tr> +<td>自治州、盟、地区行政地名</td> +<td>AC</td> +</tr> +<tr> +<td>地级市行政地名</td> +<td>AD</td> +</tr> +<tr> +<td>县级市行政地名</td> +<td>AE</td> +</tr> +<tr> +<td>县(自治县、旗、自治旗、地级市市辖区)级市行政地名</td> +<td>AF</td> +</tr> +<tr> +<td>县辖区及县级行政区域的派出机构地名</td> +<td>AG</td> +</tr> +<tr> +<td>街道办事处地名</td> +<td>AH</td> +</tr> +<tr> +<td>镇行政地名</td> +<td>AI</td> +</tr> +<tr> +<td>乡行政地名</td> +<td>AJ</td> +</tr> +<tr> +<td>建制村地名</td> +<td>AK</td> +</tr> +<tr> +<td>城镇区片、小区名</td> +<td>BA</td> +</tr> +<tr> +<td>自然村、屯、片村、村民小组名</td> +<td>BB</td> +</tr> +<tr> +<td>牧点、渔点、棚房名</td> +<td>BC</td> +</tr> +<tr> +<td>其它</td> +<td>BD</td> +</tr> +<tr> +<td>党政机关、党派团体名</td> +<td>CA</td> +</tr> +<tr> +<td>企事业单位名</td> +<td>CB</td> +</tr> +<tr> +<td>农、林、牧、渔场</td> +<td>CC</td> +</tr> +</tbody> +</table> +<h2 id="数据处理">数据处理</h2> +<p>从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:</p> +<ul> +<li>合并77个gdb文件中的同类要素</li> +<li>提取某类要素中的某个等级数据</li> +<li>转为gmt识别的文本格式</li> +</ul> +<h3 id="gdb数据库文件合并">gdb数据库文件合并</h3> +<p>采用本社区一贯推荐的<a href="https://docs.gmt-china.org/latest/utilities/gdal/" target="_blank" rel="noopener">GDAL/ORG库</a>将分幅的gdb数据进行批量合并。 +首先解压所有下载的压缩包,得到以<code>.gdb</code>结尾的目录。目录名类似<code>H51.gdb</code>、<code>I49.gdb</code>等。 +然后在这些目录的上级目录执行以下脚本:</p> +<p>Linux系统: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;./final&#34;</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> i in <span class="k">$(</span>ls -d *.gdb<span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> ! -d <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> <span class="o">]</span> +</span></span><span class="line"><span class="cl"> <span class="k">then</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;creating final filefolder&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -lco <span class="nv">encoding</span><span class="o">=</span>UTF-8 +</span></span><span class="line"><span class="cl"> <span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;merging……&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -update -append +</span></span><span class="line"><span class="cl"><span class="k">fi</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span></code></pre></div></p> +<p>Windows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bat" data-lang="bat"><span class="line"><span class="cl"><span class="c1">REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged</span> +</span></span><span class="line"><span class="cl"><span class="c1">REM 编码为UTF-8以正确显示属性字段中的中文</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -lco encoding=UTF-8 Merged A49.gdb +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="k">/f</span> <span class="se">%%</span>i <span class="k">in</span> <span class="p">(</span><span class="s1">&#39;dir /b &#34;*.gdb&#34;&#39;</span><span class="p">)</span> <span class="k">do</span> <span class="p">(</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -update -append Merged <span class="se">%%</span>i +</span></span><span class="line"><span class="cl"><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">pause</span> +</span></span></code></pre></div></p> +<p>若安装有python环境,还可选择<code>ogrmerge.py</code>工具进行批量的格式转换和合并,详见<a href="https://www.gdal.org/ogrmerge.html" target="_blank" rel="noopener">ogrmerge使用手册</a>。</p> +<p>该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。</p> +<h3 id="查询gb代码与class类别">查询GB代码与CLASS类别</h3> +<p>使用<code>ogrinfo</code>可以查询shp文件内包含哪些要素。例如以下命令查询<code>BOUL.shp</code>中包含的GB代码:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct GB FROM BOUL&#34; BOUL.shp +</code></pre><p>而以下命令则查询<code>AGNP.shp</code>中包含的CLASS类别:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct CLASS FROM AGNP&#34; AGNP.shp +</code></pre><h3 id="提取某类要素">提取某类要素</h3> +<p>由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用<code>ogr2ogr</code>工具提供的sql查询选项进行提取。</p> +<p>例如:</p> +<p>行政区划<code>BOUL</code>图层中GB代码<code>620201</code>、<code>620202</code>、<code>250200</code>分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;GB=620201 or GB=620202 or GB=250200&#34; BOUL_sub.gmt BOUL.shp +</code></pre><p>最后GMT绘图如下:</p> +<pre tabindex="0"><code>gmt begin ChinaMap + gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i +gmt end show +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="ChinaMap" srcset=" + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp 400w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp 760w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp" + width="760" + height="721" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>如果想要提取行政地名点<code>AGNP</code>图层中的建制村信息(对应CLASS为AK),则使用:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;CLASS=&#39;AK&#39;&#34; AGNP.gmt AGNP.shp +</code></pre><p>注意因为CLASS类别为字符串,所以此处<code>AK</code>需要加上引号。GB代码为整型数因而不需要加引号。</p> +<p>最后转换成的GMT格式数据如下:</p> +<pre tabindex="0"><code>... +# @NCLASS|NAME|PINYIN|GNID|XZNAME +# @Tstring|string|string|string|string +# FEATURE_DATA +# @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡 +121.68517089 29.388652295 +# @DAK|坝头村|Batoucun|331022000000|亭旁镇 +121.310746425 29.0109724900001 +# @DAK|白岩村|Baiyancun|331082111028|尤溪镇 +120.971417165 28.7226002200001 +# @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道 +121.257111875 28.8522451100001 +... +</code></pre><p>以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:</p> +<pre tabindex="0"><code>gmt begin AGNP jpg + gmt set PS_CHAR_ENCODING Standard+ + + gmt basemap -R120/121/28/29 -JM10c -Baf + gmt grdimage @earth_relief_15s -Cgeo + gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt + chcp 936 + gmt convert AGNP.gmt -a2=&#34;NAME&#34; | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite +gmt end +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="AGNP" srcset=" + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp 400w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp 760w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp" + width="760" + height="758" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + GMT5在Windows下提示无法创建用户目录的解决办法 + https://gmt-china.org/blog/user-directory-warning/ + Fri, 27 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/user-directory-warning/ + <p>GMT5的某些版本(&lt;5.4.4)在某些特定的Windows下会出现如下警告信息:</p> +<pre tabindex="0"><code>gmt: Unable to create GMT User directory : /Users/用户名/.gmt +gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled. +</code></pre><p>这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 +在于,当前系统没有定义环境变量 <code>HOME</code>,进而导致GMT无法知道当前计算机的主目录的 +具体位置。</p> +<p>虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 +解决办法是:</p> +<pre tabindex="0"><code>1、打开 “我的电脑”-&gt;“属性”-&gt;“高级系统设置”-&gt;“环境变量” +2、新建 “系统变量” + 变量名: HOME + 变量值: C:\Users\用户名 +</code></pre><p>重新运行GMT检查问题是否得到解决,可能需要重启计算机。</p> +<p>经测试,<code>HOME</code> 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, +执行脚本后会生成 <code>%HOME%/.gmt/cache</code> 空文件夹。</p> + + + + + GMT 中文社区第三次线下聚餐 + https://gmt-china.org/blog/gud-20171017/ + Tue, 17 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/gud-20171017/ + <p>金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。</p> +<p>2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。</p> +<p>在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。</p> +<p>希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。</p> +<p>科研道路上,知己天涯若比邻,期待下次再聚~</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp 400w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp 760w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + +<figure id="figure-从左至右依次为章浩东中科院地质与地球物理所王志伟地震局地质研究所王少卿地震局地球物理所-张琰地震局地球物理所张周广州地化所徐荟地震局地球物理所王亮成都理工杨晓瑜地震局地球物理所李佳威地震局地球物理所北大神秘人田冬冬中科大任昱南海所方洪健中科大胡少乾中科大"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所&#43;北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)" srcset=" + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp 400w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp 760w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp" + width="760" + height="493" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) + </figcaption></figure> + + + + + 利用 Google Maps 获取超高精度高程数据 + https://gmt-china.org/blog/google-maps-elevation-api/ + Thu, 14 Sep 2017 00:00:00 +0000 + https://gmt-china.org/blog/google-maps-elevation-api/ + <p>在绘制超小区域的地形图时,常需要超高精度的高程数据。</p> +<p>目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 +可以通过 Google Maps Elevation API 获取米级精度的数据。</p> +<h2 id="数据简介">数据简介</h2> +<p>Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 +置(此类位置返回负值)。</p> +<p>官方文档:</p> +<ul> +<li><a href="https://developers.google.com/maps/documentation/elevation/start?hl=zh-cn" target="_blank" rel="noopener">入门指南</a></li> +<li><a href="https://developers.google.com/maps/documentation/elevation/intro?hl=zh-cn" target="_blank" rel="noopener">开发人员指南</a></li> +</ul> +<h2 id="获取密钥-api-key">获取密钥 API KEY</h2> +<p>想要从Google Maps中获取地形数据,首先需要一个密钥。 +可以从 <a href="https://developers.google.com/maps/documentation/elevation/get-api-key" target="_blank" rel="noopener">get API key</a> +页面开始申请秘钥(需要提供信用卡等信息)。</p> +<p>限额说明:</p> +<ul> +<li>每个用户最多可能只能申请10个免费密钥</li> +<li>每个密钥每天2500次免费请求</li> +<li>每次请求最多512个位置</li> +<li>每秒最多50次请求</li> +</ul> +<h2 id="使用说明">使用说明</h2> +<h3 id="获取单点高程">获取单点高程</h3> +<p>通过简单的网络请求即可获取单点的高程:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&amp;key=YOUR_API_KEY +</code></pre><p>其中:</p> +<ul> +<li><code>locations=39.7391536,-104.9847034</code> 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔;</li> +<li><code>key=YOU_API_KEY</code> 指定了用户密钥,用户需要将自己申请的密钥替换 <code>YOU_API_KEY</code></li> +</ul> +<p>将上面的链接复制到浏览器中,即可得到返回值为::</p> +<pre><code>{ + &quot;results&quot; : [ + { + &quot;elevation&quot; : 1608.637939453125, + &quot;location&quot; : { + &quot;lat&quot; : 39.73915360, + &quot;lng&quot; : -104.98470340 + }, + &quot;resolution&quot; : 4.771975994110107 + } + ], + &quot;status&quot; : &quot;OK&quot; +} +</code></pre> +<p>从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 +resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。</p> +<h3 id="获取多点高程">获取多点高程</h3> +<p>也可以在一次网络请求中获取多个点的高程,多个位置之间用 <code>|</code> 分隔即可。例如:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&amp;key=YOUR_API_KEY +</code></pre><p>但一次请求中的位置不能超过512个。</p> +<h3 id="批量获取高程">批量获取高程</h3> +<p>Google Maps 提供了多种客户端以实现批量获取高程。 +此处以<a href="https://github.com/googlemaps/google-maps-services-python/" target="_blank" rel="noopener">Python客户端</a> 为例。</p> +<ol> +<li> +<p>安装 Google Map API 的 Python模块:</p> +<pre><code> $ pip install -U googlemaps +</code></pre> +</li> +<li> +<p>获取密钥</p> +</li> +<li> +<p>参考如下脚本批量获取高程数据</p> +</li> +</ol> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: utf-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">googlemaps</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="s2">&#34;&#34;&#34;Request elevation and return them with a list +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> Parameter +</span></span></span><span class="line"><span class="cl"><span class="s2"> ========= +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of longitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> yinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of latitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> maxnum : int +</span></span></span><span class="line"><span class="cl"><span class="s2"> point number of one request, maximum value is 512 +</span></span></span><span class="line"><span class="cl"><span class="s2"> &#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">xlist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">ylist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">points</span> <span class="o">=</span> <span class="p">[(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">ylist</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xlist</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">requestnum</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">points</span><span class="p">)</span> <span class="o">/</span> <span class="n">maxnum</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">npoints</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array_split</span><span class="p">(</span><span class="n">points</span><span class="p">,</span> <span class="n">requestnum</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">requestnum</span> <span class="o">&gt;</span> <span class="mi">2500</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Error: Request number exceed! Change grid or region.&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="p">[</span><span class="n">gmaps</span><span class="o">.</span><span class="n">elevation</span><span class="p">(</span><span class="n">locations</span><span class="o">=</span><span class="n">loc</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> <span class="k">for</span> <span class="n">loc</span> <span class="ow">in</span> <span class="n">npoints</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># 设置要下载高程数据的经度范围、纬度范围以及网格间隔</span> +</span></span><span class="line"><span class="cl"><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span> <span class="o">=</span> <span class="mf">120.000</span><span class="p">,</span> <span class="mf">129.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span> <span class="o">=</span> <span class="mf">30.000</span><span class="p">,</span> <span class="mf">30.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">gmaps</span> <span class="o">=</span> <span class="n">googlemaps</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s1">&#39;YOU_API_KEY&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># Obtain all elevations</span> +</span></span><span class="line"><span class="cl"><span class="c1"># 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度</span> +</span></span><span class="line"><span class="cl"><span class="n">elevations</span> <span class="o">=</span> <span class="n">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># output data with format `longitude latitude elevation resolution`</span> +</span></span><span class="line"><span class="cl"><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&#34;Elevations.dat&#34;</span><span class="p">,</span> <span class="s2">&#34;w&#34;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">loclist</span> <span class="ow">in</span> <span class="n">elevations</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">subloc</span> <span class="ow">in</span> <span class="n">loclist</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">outputstr</span> <span class="o">=</span> <span class="s2">&#34;</span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lng&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lat&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;elevation&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;resolution&#39;</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">f</span><span class="o">.</span><span class="n">writelines</span><span class="p">(</span><span class="n">outputstr</span><span class="p">)</span> +</span></span></code></pre></div> + + + + GMT 中文社区 QQ 群入群须知 + https://gmt-china.org/blog/community-guide/ + Wed, 23 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/community-guide/ + <p>欢迎加入“地学GMT中文社区群”:</p> +<p><i class="fab fa-qq"></i> 一群:218905582 +<br> +<i class="fab fa-qq"></i> 二群:791856541</p> +<p>GMT 中文社区群是一个相对活跃且学术氛围浓厚的群。本文是 GMT 中文社区群的入群须知, +也是 GMT 中文社区的提问规范。希望所有群友可以阅读并遵守以下规范来营造更好的群环境。</p> +<div class="row "> +<div class="col-md-6"> +<h4 id="群内可以做的事">群内可以做的事</h4> +<ul> +<li>GMT 相关问题</li> +<li>其他地学软件相关问题</li> +<li>地学科研相关问题</li> +<li>求助文献</li> +<li>发科研相关的培训、会议信息</li> +<li>介绍并推广自己的最新研究成果</li> +</ul> +</div> +<div class="col-md-6"> +<h4 id="群内禁止做的事">群内禁止做的事:</h4> +<ul> +<li>发广告</li> +<li>签到、灌水等无意义行为</li> +<li>人身攻击</li> +<li>讨论政治问题</li> +</ul> +</div> +</div> +<h2 id="安装类问题">安装类问题</h2> +<p>如果你在安装 GMT 的过程中遇到问题,请参照下面的模板提问。</p> +<div class="alert alert-info"> + <div> + <p>我在安装 GMT 的时候遇到了问题,请问该如何解决?谢谢。</p> +<ul> +<li><strong>操作系统是</strong>: Windows XP | Windows 7 | Ubuntu | CentOS | macOS &hellip;</li> +<li><strong>要安装的GMT版本是</strong>: GMT 4.5.16 | GMT 5.4.2 &hellip;</li> +<li><strong>安装GMT参考的文档是</strong>: <em>此处可贴文档的网址</em></li> +<li><strong>安装过程中显示的错误信息为</strong>: <em>此处可贴图</em></li> +</ul> + </div> +</div> +<h2 id="思路类问题">思路类问题</h2> +<p>想要实现某一类图,但不知GMT能否实现或没有实现的思路。</p> +<p>如果别人文章中有自己想要实现的效果图就直接贴图,并指出自己在实现图中哪一部分 +时没有思路。如果找不到已有的效果图,可以考虑手绘示意图,或精准描述自己想要的 +效果,以免引起误会,造成不必要的时间浪费。</p> +<div class="alert alert-info"> + <div> + <p><em>此处先贴一张图</em></p> +<p>请问图中的XXXXX能否用GMT实现?该如何实现?谢谢。</p> + </div> +</div> +<div class="alert alert-info"> + <div> + 请问我想用GMT实现XXX效果。<em>此处详细介绍自己想要的效果</em> 。不知GMT中该如何实现? +谢谢。 + </div> +</div> +<p>如果遇到自己画出来的图与自己预期的图不一致,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>当前效果</strong>:截图</li> +<li><strong>预期效果</strong>:预期效果截图,或对预期效果的精确描述</li> +<li><strong>我的代码是</strong>:给出自己使用的代码,可以截图可以贴代码。最好是给出最小示例而不是一堆代码。</li> +<li><strong>GMT版本是</strong>: GMT 5.4.2</li> +</ul> + </div> +</div> +<h2 id="脚本报错类">脚本报错类</h2> +<p>遇到绘图脚本或数据处理脚本出错时,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>我想要实现的是</strong> :&hellip;</li> +<li><strong>我的命令/脚本是</strong>: 可截图或贴脚本</li> +<li><strong>终端报错是</strong>: 终端报错截图</li> +</ul> + </div> +</div> +<h2 id="文献求助">文献求助</h2> +<p>需要他人帮忙下载文献时,请先使用 sci-hub 工具自行尝试下载 +(<a href="https://gmt-china.org/blog/sci-hub/">sci-hub教程</a>)。</p> +<p>对于中文文献或 sci-hub 无法下载的文献,方可在群中寻找帮助。求助文献时,请先明确 +告知“使用 sci-hub无 法下载该文章”并提供文章的官方链接。若找不到官方链接,则提供 +文章的标题、作者、期刊、年份等信息。</p> +<p>求助文献示例如下:</p> +<div class="alert alert-info"> + <div> + 文献求助!我已经尝试用 sci-hub 下载但依然下载不到。文章链接为: XXXXXXX。谢谢。 + </div> +</div> +<h2 id="提问的智慧">提问的智慧</h2> +<p>时间对任何人都是一笔宝贵的财富。没有人有义务回答你的问题。在期望别人回答你的问题 +之前先要问一问自己针对这个问题做了哪些努力。</p> +<h3 id="提问前需要做的事情">提问前需要做的事情</h3> +<p>大多数的问题,文档都可以为你提供标准的解答。因此在你提问之前,你最好先去阅读一下 +相关的文档,至少确保你阅读过一份完整的入门文档。如果你能够在你提问的同时表明 +自己已经阅读过文档,但是依旧留有困惑,潜在的回答者会更加愿意为你解答。</p> +<p>推荐的一些文档:</p> +<ul> +<li><a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文社区:图库</a></li> +<li><a href="https://docs.gmt-china.org/" target="_blank" rel="noopener">GMT 中文手册</a></li> +<li><a href="https://docs.generic-mapping-tools.org/latest/" target="_blank" rel="noopener">GMT 官方文档</a></li> +</ul> +<h3 id="提问技巧">提问技巧</h3> +<ol> +<li>精确描述自己做了什么,遇到了什么问题,要提供足够的信息给潜在的回答者,尽量避免 +回答者多次要求提问者补充额外的信息的情况。</li> +<li>提供当前所使用的代码。贴完图之后如果自行修正了代码中的某些错误,一定要更新图。</li> +<li>提供截图以及文本。有些时候需要准确看到代码的样子,此时截图更合适;有些时候需要 +复制代码在自己电脑上跑一遍,此时提供文本更合适。</li> +<li>提问时说一说自己为了解决这个问题做了哪些事情,没人喜欢“伸手党”。</li> +<li>时间对任何人都是一笔宝贵的财富,请心怀感恩之心。</li> +<li>当你解决了某个问题(不管是别人帮助还是自己茅塞顿开),请不要吝啬告诉大家你的解决方案</li> +<li>当别人正在讨论某个问题时,请不要中间插入自己的问题,待别人的问题告一段落之后再提问。</li> +<li>除非必要,不要在首次发问的时候@某个人,这样给所有人的感觉是你在向这个人提问, +从而失去了更多的潜在回答者。</li> +<li>有问题就直接问,不必管有没有人用过。很多时候,你在A软件中遇到的问题可能跟A软件 +完全没有关系,完全没接触过A软件的人可能也可以帮你解决该问题。</li> +</ol> + + + + + 投稿须知 + https://gmt-china.org/blog/instructions-for-authors/ + Thu, 17 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/instructions-for-authors/ + <p>GMT 中文社区欢迎读者投稿,稿件主要包括社区博文和绘图实例两大类。</p> +<h2 id="稿件类型">稿件类型</h2> +<h3 id="社区博文">社区博文</h3> +<p>社区博文是与 GMT 官方及社区活动有关的简短文章,包括但不限于:</p> +<ol> +<li>GMT 官方新闻(比如新版本发布)</li> +<li>GMT 社区新闻(比如聚餐与培训)</li> +<li>GMT 使用技巧等</li> +</ol> +<h3 id="绘图实例">绘图实例</h3> +<p>绘图实例是指使用 GMT 绘制的具有典型性的图件。 +目前社区维护的绘图实例位于 +<a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文手册:绘图实例</a>中。</p> +<p>请参考<a href="https://docs.gmt-china.org/latest/contributing/" target="_blank" rel="noopener">GMT 中文手册:贡献指南</a>, +直接向中文手册提交绘图实例。</p> +<h2 id="投稿方式">投稿方式</h2> +<p>可以通过如下几种方式投稿:</p> +<ol> +<li>直接在 <a href="https://github.com/gmt-china/gmt-china.org" target="_blank" rel="noopener">社区主页</a> +或 <a href="https://github.com/gmt-china/GMT_docs" target="_blank" rel="noopener">GMT中文手册</a> 的 GitHub 仓库中 +提交 Issue 或 Pull Request。 +(不熟悉 Pull Request 的读者可以参考 <a href="https://seismo-learn.org/contributing/pull-request/" target="_blank" rel="noopener">Pull Request 流程</a></li> +<li>将稿件发送至 <a href="mailto:admin@gmt-china.org">admin@gmt-china.org</a></li> +</ol> +<h2 id="作者权益">作者权益</h2> +<p>请确保你有将稿件投稿到社区的权利,特别是在图件修改自他人图件的情况下。 +你所拥有的权益是稿件公开后,你有署名权(如果维护者对你的稿件有大改, +则维护者可能会在你的名字后面署名)。接受的稿件在公开后,任何人对你的稿件都可以 +以任何媒介以任何形式进行复制、发行、修改、转换或以其为基础进行再创作用于任何 +可能的用途,包括商业目的。别人在使用你的作品之后,应当提及你和 GMT 中文社区, +但社区无法保证第三方会尊重你的权益。</p> + + + + + 使用sci-hub下载文献 + https://gmt-china.org/blog/sci-hub/ + Sat, 12 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/sci-hub/ + <p>科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, +因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, +可以下载到绝大多数外文期刊的文章甚至书籍。</p> +<h2 id="sci-hub-网站">sci-hub 网站</h2> +<p>sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, +用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:</p> +<p><a href="https://whereisscihub.now.sh/" target="_blank" rel="noopener">https://whereisscihub.now.sh/</a></p> +<h2 id="使用方法">使用方法</h2> +<p>下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。</p> +<p>要下载一篇文章,需要知道如下两个信息中的至少一个:</p> +<ol> +<li>文献的官方网址,比如 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a>, +可以通过 Google Scholar 等网站搜索得到</li> +<li>文献的DOI,比如 <code>10.1016/0031-9201(81)90046-7</code>,可以从文章的官方网站上找到, +现在大多数文章的参考文献也要求给出DOI信息</li> +</ol> +<blockquote> +<p>DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 +全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, +DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 <a href="https://dx.doi.org/" target="_blank" rel="noopener">https://dx.doi.org/</a> 后 +(例如 <a href="https://dx.doi.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://dx.doi.org/10.1016/0031-9201(81)90046-7</a> )即可跳转到该文章的真实网址。</p> +</blockquote> +<h3 id="到-sci-hub-网站下载">到 sci-hub 网站下载</h3> +<p>访问 sci-hub 网址,比如 <a href="https://sci.hubg.org/" target="_blank" rel="noopener">https://sci.hubg.org/</a> ,如下图所示:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub主页" srcset=" + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp 400w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp 760w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp" + width="760" + height="407" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。</p> +<h3 id="直接利用网址下载全文">直接利用网址下载全文</h3> +<p>打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 <code>sci-hub.org</code> 即可。</p> +<p>例如,这篇文章的网址是 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a> , +在域名的后面加上 sci-hub 的域名,变成: +<a href="https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467</a> +即可直接下载文章全文。</p> +<h3 id="直接利用doi下载全文">直接利用DOI下载全文</h3> +<p>已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 +<a href="https://sci-hub.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://sci-hub.org/10.1016/0031-9201(81)90046-7</a> 即可下载文章全文。</p> +<h2 id="注意事项">注意事项</h2> +<ul> +<li> +<p>当文献下载过频繁会要求用户输入验证码,如下图:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub验证码" srcset=" + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp 400w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp 760w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp" + width="760" + height="386" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +</li> +<li> +<p>DOI是如 <code>10.1016/0031-9201(81)90046-7</code> 这样的字符串,前面不要带 <code>doi:</code> 等其他字符。</p> +</li> +<li> +<p>sci-hub 不支持下载国内期刊的文章</p> +</li> +</ul> + + + + + GMT中文社区第二次线下聚餐 + https://gmt-china.org/blog/gud-20160921/ + Tue, 27 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160921/ + <p>2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 +刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), +四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。</p> +<p>聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 +被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 +欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 +工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 +腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 +将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, +并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 +和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 +仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!</p> +<p>随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 +全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 +此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” +美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。</p> +<p>GMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, +为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 +遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 +一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, +但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!</p> + + + + + + + + + + + + + + + + +<figure id="figure-参会人员从左往右依次为章婷湖北省地震局刘珠妹中国地震局地震研究所王丽霞中国地震局兰州地震研究所杨萍中国地震局兰州地震研究所郑海刚安徽省地震局谢小晋中国地质大学-武汉贾媛山东省地震局杨锦玲福建省地震局田冬冬中国科学技术大学肖晓武汉大学赵志远河北省地震局刘旭耀中国地质大学-武汉罗娜河北省地震局邓明莉中国科学院测量与地球物理研究所刘成利中国地质大学-武汉单斌中国地质大学-武汉"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉)" srcset=" + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp 400w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp 760w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) + </figcaption></figure> + + + + + GMT中文社区首次线下培训 + https://gmt-china.org/blog/gmtcon-20160921/ + Sun, 25 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmtcon-20160921/ + <p>2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。</p> +<p>此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 +单斌(中国地质大学特任教授,社区 ID:Bins)和 +刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 +做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 +专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。</p> +<p>此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, +经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 +讲座的最终主题。</p> +<p>21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, +随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 +学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 +仁人志士加入到GMT社区的设计和日常维护中。</p> +<p>单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 +编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 +最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 +分享交流。</p> +<p>22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 +使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, +介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 +二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, +具体问题具体分析,带着问题去找答案。</p> +<p>此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, +推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, +促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, +此次培训取得了预期效果,期待下一次培训的召开。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="田冬冬" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="单斌" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="刘珠妹" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="现场互动" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + GMT中文社区首次线下聚餐 + https://gmt-china.org/blog/gud-20160628/ + Sat, 24 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160628/ + <p>2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。</p> +<p>6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 +“首届中国区域地震学参考模型交流会”。 +社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。</p> +<p>6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 +在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。</p> + + + + + + + + + + + + + + + + +<figure id="figure-左至右依次为李佳威中国地震局地球物理研究所王志伟中国地震局地质研究所田冬冬中国科学技术大学王亮桂林理工大学李君中国地震局第二监测中心"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心" srcset=" + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp 400w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp 760w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 + </figcaption></figure> + + + + GMT国内镜像正式建成 + https://gmt-china.org/blog/mirror-site-founded/ + Fri, 08 Jul 2016 00:00:00 +0000 + https://gmt-china.org/blog/mirror-site-founded/ + <p>经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 +该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 +GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。</p> +<h2 id="gmt-源码包镜像">GMT 源码包镜像</h2> +<p>镜像地址:<a href="http://mirrors.ustc.edu.cn/gmt/" target="_blank" rel="noopener">http://mirrors.ustc.edu.cn/gmt/</a></p> +<p>GMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 +进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 <code>bin</code> 目录下。</p> +<h2 id="gmt-远程数据镜像">GMT 远程数据镜像</h2> +<p>镜像地址:<a href="https://mirrors.ustc.edu.cn/gmtdata/" target="_blank" rel="noopener">https://mirrors.ustc.edu.cn/gmtdata/</a></p> +<p>GMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 +<a href="https://docs.gmt-china.org/latest/dataset/usage/" target="_blank" rel="noopener">https://docs.gmt-china.org/latest/dataset/usage/</a>。</p> + + + + + GMT中文社区正式成立 + https://gmt-china.org/blog/gmt-china-community-founded/ + Wed, 06 Apr 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmt-china-community-founded/ + <p>GMT的中文用户们,大家好,我是 <a href="https://seisman.info" target="_blank" rel="noopener">seisman</a> 。</p> +<p>GMT中文社区于今日正式成立了!</p> +<p>GMT中文社区是针对GMT中文用户而成立的社区。整个社区目前包含了三个主要部分: +社区主站、GMT中文手册和问答社区。</p> +<p>在社区的第一篇博文中,我想谈谈建立这个社区的原因及一些想法。</p> +<h2 id="gmt中文手册">GMT中文手册</h2> +<p>GMT中文手册的项目始于2014年,到2016年初已经初步成形。</p> +<p>在2014年,网络上能够找到的几本GMT中文文档,大多基于GMT4甚至GMT3。 +这几本文档存在一些明显的缺陷:</p> +<ol> +<li>排版质量一般,大多是在Word里写好然后转换成PDF的</li> +<li>缺乏维护,几乎都是写好发布之后就没有再更新</li> +<li>不完整,很多有价值的内容都没有被包含在文档中</li> +<li>不严谨,很多文档声称是基于GMT4,但实际上某些命令却在使用GMT3的语法</li> +<li>无法适配最新版的GMT,某些时候对于新用户而言是一种障碍</li> +<li>重复劳动:不同的作者,花费了大量的时间和精力,翻译整理出了几份相似的文档, +这其中很多工作都是在重复劳动</li> +</ol> +<p>因而,我于2014年开始写针对GMT5的中文手册。新的GMT中文手册具有如下特点:</p> +<ol> +<li>开源:源代码用rST语言写成,并在GitHub上开源</li> +<li>高质量排版:文档有网页版和PDF版,保证高质量的排版(目前尚存在不足,见第5条)</li> +<li>完整性:尽可能覆盖GMT的方方面面,成为一个完整的参考手册(没有最完整,只有更完整,见第5条)</li> +<li>协同合作:依托强大的GitHub和Git,使得多人合作共同编辑同一份文档变得很简单</li> +<li>持续维护:不仅适配GMT的新版本,而且不断修正文档中存在的错误</li> +<li>严谨性:尽可能保证所有命令均通过GMT最新版本的测试</li> +</ol> +<p>经过两年努力,文档的整体结构已经大体完成。我希望文档今后能够持续更新,不断完善, +不管是接下来的GMT 5.2.2、5.3.0还是未来的GMT 6.0甚至7.0,都能随着GMT版本的升级 +而不断更新,但这些已非我一人之力所能完成。众人拾柴火焰高。我希望有更多的GMT中文 +用户加入到文档维护的队伍中来,这便是我建立GMT中文社区的目的。</p> +<h2 id="问答社区">问答社区</h2> +<div class="alert alert-note"> + <div> + 问答社区试运行了一段时间,但最终还是因为用户参与度较低而决定关闭问答社区。 + </div> +</div> +<p>GMT问答社区的前身是地学GMT学习群(群号:218905582)。QQ群属于即时通讯,通常在 +群中提的问题都可以快速得到答案,但与此同时,QQ群存在如下缺点:</p> +<ol> +<li>即时性导致的随意性:由于QQ本质上是一种聊天工具,导致很多人在提问时太过随意。 +遇到问题时,不加思索在QQ群中提问,却不去思考如何提问,如何在提问时提供完整 +有效的信息,如何在提问时解释清楚自己想要实现什么和遇到了什么问题。 +QQ群中的很多提问都是如此,需要回答者多次向提问者发问才能搞清楚提问者的问题。 +这不仅浪费了回答者的时间,也不利于提问者能力的提高。</li> +<li>多话题引起的错乱:经常遇到几个人同时提问,几个话题互相交叉,使得搞不清到底谁在回复谁</li> +<li>问答记录无法长期保存:只有用户接收到的消息会被保存到本地磁盘中,而对于 +新加入的成员而言,则无法看到历史聊天记录</li> +<li>问答记录无法搜索:仅当聊天记录保存在本地磁盘中才能被搜索,无法通过搜索引擎检索</li> +<li>问答记录无法被非群成员搜索:有大量的GMT用户未加入群中,这些非成员则无法获取这些优质的问答资源</li> +<li>Linux用户提问不便:Linux下几乎没有可用的QQ客户端,导致众多Linux下的GMT用户 +只能通过手机打字在群中提问,且只能通过手机拍照的方式上传屏幕截图</li> +</ol> +<p>鉴于QQ群的以上几个缺点,萌生了建立问答社区的想法。希望这样一个问答社区可以解决QQ +群存在的问题。问答社区将努力保持高信噪比,专注于GMT的问与答。</p> +<h2 id="gmt中文社区">GMT中文社区</h2> +<p>最初是计划把中文手册以及问答社区都放在我自己的博客域名之下的,但这样做一方面 +不够正式,另一方面也会影响到我对于自己博客的整体定位。最终经过一番考量之后, +决定单独购买域名,建立GMT中文社区,然后将文档以及问答社区作为GMT中文社区的子项目。</p> +<p>现在,整个GMT中文社区的基本框架已经搭建完毕。我希望它能顺利运行下去,也欢迎 +更多的人提意见和建议,加入到整个社区的维护中来。</p> +<p>最后,我要感谢王亮在整个社区的建立过程中和我交流与讨论,并给出了很多有意义的建议。 +我还要感谢各种开源服务,我的工作是建立在它们之上的。我也希望华语地学界有更多的 +人了解开源、认同开源、热爱开源并最终参与到开源中来。</p> + + + + + diff --git a/blog/instructions-for-authors/index.html b/blog/instructions-for-authors/index.html new file mode 100644 index 00000000..5f2b43e6 --- /dev/null +++ b/blog/instructions-for-authors/index.html @@ -0,0 +1,1219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 投稿须知 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

投稿须知

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

GMT 中文社区欢迎读者投稿,稿件主要包括社区博文和绘图实例两大类。

+

稿件类型

+

社区博文

+

社区博文是与 GMT 官方及社区活动有关的简短文章,包括但不限于:

+
    +
  1. GMT 官方新闻(比如新版本发布)
  2. +
  3. GMT 社区新闻(比如聚餐与培训)
  4. +
  5. GMT 使用技巧等
  6. +
+

绘图实例

+

绘图实例是指使用 GMT 绘制的具有典型性的图件。 +目前社区维护的绘图实例位于 +GMT 中文手册:绘图实例中。

+

请参考GMT 中文手册:贡献指南, +直接向中文手册提交绘图实例。

+

投稿方式

+

可以通过如下几种方式投稿:

+
    +
  1. 直接在 社区主页 +或 GMT中文手册 的 GitHub 仓库中 +提交 Issue 或 Pull Request。 +(不熟悉 Pull Request 的读者可以参考 Pull Request 流程
  2. +
  3. 将稿件发送至 admin@gmt-china.org
  4. +
+

作者权益

+

请确保你有将稿件投稿到社区的权利,特别是在图件修改自他人图件的情况下。 +你所拥有的权益是稿件公开后,你有署名权(如果维护者对你的稿件有大改, +则维护者可能会在你的名字后面署名)。接受的稿件在公开后,任何人对你的稿件都可以 +以任何媒介以任何形式进行复制、发行、修改、转换或以其为基础进行再创作用于任何 +可能的用途,包括商业目的。别人在使用你的作品之后,应当提及你和 GMT 中文社区, +但社区无法保证第三方会尊重你的权益。

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/mirror-site-founded/index.html b/blog/mirror-site-founded/index.html new file mode 100644 index 00000000..532f79ae --- /dev/null +++ b/blog/mirror-site-founded/index.html @@ -0,0 +1,1205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT国内镜像正式建成 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT国内镜像正式建成

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 +该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 +GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。

+

GMT 源码包镜像

+

镜像地址:http://mirrors.ustc.edu.cn/gmt/

+

GMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 +进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 bin 目录下。

+

GMT 远程数据镜像

+

镜像地址:https://mirrors.ustc.edu.cn/gmtdata/

+

GMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 +https://docs.gmt-china.org/latest/dataset/usage/

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/national-geographic-database/01.datalist.png b/blog/national-geographic-database/01.datalist.png new file mode 100644 index 00000000..68463ea1 Binary files /dev/null and b/blog/national-geographic-database/01.datalist.png differ diff --git a/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..e3429ebd Binary files /dev/null and b/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp b/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp new file mode 100644 index 00000000..0562778d Binary files /dev/null and b/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp differ diff --git a/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp b/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp new file mode 100644 index 00000000..4670fb72 Binary files /dev/null and b/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp differ diff --git a/blog/national-geographic-database/05.BOUL.png b/blog/national-geographic-database/05.BOUL.png new file mode 100644 index 00000000..3c4b06f2 Binary files /dev/null and b/blog/national-geographic-database/05.BOUL.png differ diff --git a/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..2c9196d0 Binary files /dev/null and b/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp b/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp new file mode 100644 index 00000000..3841662c Binary files /dev/null and b/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp differ diff --git a/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp b/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp new file mode 100644 index 00000000..b8e4b8a4 Binary files /dev/null and b/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp differ diff --git a/blog/national-geographic-database/09.ChinaMap.png b/blog/national-geographic-database/09.ChinaMap.png new file mode 100644 index 00000000..352c9b2b Binary files /dev/null and b/blog/national-geographic-database/09.ChinaMap.png differ diff --git a/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..9cff7660 Binary files /dev/null and b/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp b/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp new file mode 100644 index 00000000..fcc38681 Binary files /dev/null and b/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp differ diff --git a/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp b/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp new file mode 100644 index 00000000..3ef0bc31 Binary files /dev/null and b/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp differ diff --git a/blog/national-geographic-database/AGNP.jpg b/blog/national-geographic-database/AGNP.jpg new file mode 100644 index 00000000..93f913d3 Binary files /dev/null and b/blog/national-geographic-database/AGNP.jpg differ diff --git a/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp b/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..5baa3532 Binary files /dev/null and b/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp b/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp new file mode 100644 index 00000000..78b339bf Binary files /dev/null and b/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp differ diff --git a/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp b/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp new file mode 100644 index 00000000..993e6ca0 Binary files /dev/null and b/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp differ diff --git a/blog/national-geographic-database/index.html b/blog/national-geographic-database/index.html new file mode 100644 index 00000000..4709db53 --- /dev/null +++ b/blog/national-geographic-database/index.html @@ -0,0 +1,1556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2021版1:100万全国标准基础地理数据!你值得拥有 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

2021版1:100万全国标准基础地理数据!你值得拥有

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。

+

具体包括:

+
    +
  • 国家标准1:100万(非涉密)基础地理数据的申请、下载
  • +
  • 数据集内容简介
  • +
  • 数据集要素合并、提取及格式转换
  • +
+
+
+ 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 +《地图管理条例》有关规定依法履行地图审核程序。 +
+
+

数据概况

+

国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:

+
    +
  • 共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。
  • +
  • 包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。
  • +
+

数据更多介绍可访问全国地理信息资源目录服务系统

+

数据获取

+
    +
  • 进入全国地理信息资源目录服务系统,点右上角“注册”。已注册用户直接登陆。
  • +
  • 在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。
  • +
  • 该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。
  • +
  • 结算,填写订单中的个人信息,验证手机号,下载数据。 +**注:**若未提示验证手机,换个firefox浏览器试试。
  • +
+

数据集内容简介

+

该数据集包括5类12个要素集,如下图所示:

+ + + + + + + + + + + + + + + + +
+
+
全国基础地理数据库数据集
+
+ 全国基础地理数据库数据集 +
+

每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:

+

BOUL 中国及邻区各级行政界限(线)图层

+

+ + + + + + + + + + + + + + + +

+
+
BOUL
+
+

+

该数据集包括各级行政区界线,以GB码进行区分:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
行政区界类型GB码
海岸线250200
水系交汇处260100
外国地区国界线610200
国界线(已定)620201
国界线(未定)620202
省级界线630200
特别行政区界630400
地、市、州级行政区界640200
县级行政区界650200
特殊地区界限670202
+

其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。

+

此外,常用的还有 AGNP 各级行政地名和城乡居民地坐标(点)图层

+

行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
行政地名点类型CLASS类别
国名AA
省(直辖市、自治区、特别行政区)行政地名AB
自治州、盟、地区行政地名AC
地级市行政地名AD
县级市行政地名AE
县(自治县、旗、自治旗、地级市市辖区)级市行政地名AF
县辖区及县级行政区域的派出机构地名AG
街道办事处地名AH
镇行政地名AI
乡行政地名AJ
建制村地名AK
城镇区片、小区名BA
自然村、屯、片村、村民小组名BB
牧点、渔点、棚房名BC
其它BD
党政机关、党派团体名CA
企事业单位名CB
农、林、牧、渔场CC
+

数据处理

+

从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:

+
    +
  • 合并77个gdb文件中的同类要素
  • +
  • 提取某类要素中的某个等级数据
  • +
  • 转为gmt识别的文本格式
  • +
+

gdb数据库文件合并

+

采用本社区一贯推荐的GDAL/ORG库将分幅的gdb数据进行批量合并。 +首先解压所有下载的压缩包,得到以.gdb结尾的目录。目录名类似H51.gdbI49.gdb等。 +然后在这些目录的上级目录执行以下脚本:

+

Linux系统: +

#!/bin/bash
+file="./final"
+for i in $(ls -d *.gdb)
+do
+ if [ ! -d "$file" ]
+      then
+           echo "creating final filefolder" 
+           ogr2ogr -f 'ESRI Shapefile' $file $i -lco encoding=UTF-8
+      else
+           echo "merging……"
+      ogr2ogr -f 'ESRI Shapefile' $file $i -update -append
+fi
+done
+

+

Windows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: +

REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged
+REM 编码为UTF-8以正确显示属性字段中的中文
+ogr2ogr -f "ESRI Shapefile" -lco encoding=UTF-8 Merged A49.gdb
+
+REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。
+for /f %%i in ('dir /b "*.gdb"') do (
+ogr2ogr -f "ESRI Shapefile" -update -append Merged %%i
+)
+
+pause
+

+

若安装有python环境,还可选择ogrmerge.py工具进行批量的格式转换和合并,详见ogrmerge使用手册

+

该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。

+

查询GB代码与CLASS类别

+

使用ogrinfo可以查询shp文件内包含哪些要素。例如以下命令查询BOUL.shp中包含的GB代码:

+
ogrinfo -sql "SELECT distinct GB FROM BOUL" BOUL.shp
+

而以下命令则查询AGNP.shp中包含的CLASS类别:

+
ogrinfo -sql "SELECT distinct CLASS FROM AGNP" AGNP.shp
+

提取某类要素

+

由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用ogr2ogr工具提供的sql查询选项进行提取。

+

例如:

+

行政区划BOUL图层中GB代码620201620202250200分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:

+
ogr2ogr -f GMT -where "GB=620201 or GB=620202 or GB=250200" BOUL_sub.gmt BOUL.shp
+

最后GMT绘图如下:

+
gmt begin ChinaMap
+    gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i 
+gmt end show
+

绘图结果:

+

+ + + + + + + + + + + + + + + +

+
+
ChinaMap
+
+

+

如果想要提取行政地名点AGNP图层中的建制村信息(对应CLASS为AK),则使用:

+
ogr2ogr -f GMT -where "CLASS='AK'" AGNP.gmt AGNP.shp
+

注意因为CLASS类别为字符串,所以此处AK需要加上引号。GB代码为整型数因而不需要加引号。

+

最后转换成的GMT格式数据如下:

+
...
+# @NCLASS|NAME|PINYIN|GNID|XZNAME
+# @Tstring|string|string|string|string
+# FEATURE_DATA
+# @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡
+121.68517089 29.388652295
+# @DAK|坝头村|Batoucun|331022000000|亭旁镇
+121.310746425 29.0109724900001
+# @DAK|白岩村|Baiyancun|331082111028|尤溪镇
+120.971417165 28.7226002200001
+# @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道
+121.257111875 28.8522451100001
+...
+

以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:

+
gmt begin AGNP jpg
+  gmt set PS_CHAR_ENCODING Standard+
+
+  gmt basemap -R120/121/28/29 -JM10c -Baf
+  gmt grdimage @earth_relief_15s -Cgeo
+  gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt
+  chcp 936
+  gmt convert AGNP.gmt -a2="NAME" | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite
+gmt end
+

绘图结果:

+

+ + + + + + + + + + + + + + + +

+
+
AGNP
+
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/national-geographic-database/merge.GMT6.bat b/blog/national-geographic-database/merge.GMT6.bat new file mode 100644 index 00000000..a7ea23e0 --- /dev/null +++ b/blog/national-geographic-database/merge.GMT6.bat @@ -0,0 +1,10 @@ +REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged +REM 编码为UTF-8以正确显示属性字段中的中文 +ogr2ogr -f "ESRI Shapefile" -lco encoding=UTF-8 Merged A49.gdb + +REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。 +for /f %%i in ('dir /b "*.gdb"') do ( +ogr2ogr -f "ESRI Shapefile" -update -append Merged %%i +) + +pause diff --git a/blog/national-geographic-database/merge.GMT6.sh b/blog/national-geographic-database/merge.GMT6.sh new file mode 100644 index 00000000..c6b8c56f --- /dev/null +++ b/blog/national-geographic-database/merge.GMT6.sh @@ -0,0 +1,13 @@ +#!/bin/bash +file="./final" +for i in $(ls -d *.gdb) +do + if [ ! -d "$file" ] + then + echo "creating final filefolder" + ogr2ogr -f 'ESRI Shapefile' $file $i -lco encoding=UTF-8 + else + echo "merging……" + ogr2ogr -f 'ESRI Shapefile' $file $i -update -append +fi +done diff --git a/blog/page/1/index.html b/blog/page/1/index.html new file mode 100644 index 00000000..2cc69313 --- /dev/null +++ b/blog/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/blog/ + + + + + + diff --git a/blog/page/2/index.html b/blog/page/2/index.html new file mode 100644 index 00000000..ab7091fb --- /dev/null +++ b/blog/page/2/index.html @@ -0,0 +1,1279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 博客 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

博客

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区首次线下聚餐 +
+ + + +
+

2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。

+
+
+ + + + + + +
+
+ + + + + GMT中文社区首次线下聚餐 + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT国内镜像正式建成 +
+ + + +
+ GMT国内镜像正式建成 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区正式成立 +
+ + + +
+ GMT中文社区于今日正式成立了! +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/sci-hub/featured.png b/blog/sci-hub/featured.png new file mode 100644 index 00000000..2070b1fd Binary files /dev/null and b/blog/sci-hub/featured.png differ diff --git a/blog/sci-hub/featured_huf742b26f81888ed21ce09c51811961f9_145831_150x0_resize_q75_h2_lanczos_3.webp b/blog/sci-hub/featured_huf742b26f81888ed21ce09c51811961f9_145831_150x0_resize_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..c253e1b6 Binary files /dev/null and b/blog/sci-hub/featured_huf742b26f81888ed21ce09c51811961f9_145831_150x0_resize_q75_h2_lanczos_3.webp differ diff --git a/blog/sci-hub/featured_huf742b26f81888ed21ce09c51811961f9_145831_720x2500_fit_q75_h2_lanczos_3.webp b/blog/sci-hub/featured_huf742b26f81888ed21ce09c51811961f9_145831_720x2500_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..c2e8341c Binary files /dev/null and b/blog/sci-hub/featured_huf742b26f81888ed21ce09c51811961f9_145831_720x2500_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/sci-hub/index.html b/blog/sci-hub/index.html new file mode 100644 index 00000000..3285f814 --- /dev/null +++ b/blog/sci-hub/index.html @@ -0,0 +1,1311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 使用sci-hub下载文献 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

使用sci-hub下载文献

+ + + + + + + + + + + + + + +
+ + +
+
+ + sci-hub首页 +
+
+ + + +
+ +
+

科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, +因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, +可以下载到绝大多数外文期刊的文章甚至书籍。

+

sci-hub 网站

+

sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, +用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:

+

https://whereisscihub.now.sh/

+

使用方法

+

下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。

+

要下载一篇文章,需要知道如下两个信息中的至少一个:

+
    +
  1. 文献的官方网址,比如 https://www.sciencedirect.com/science/article/pii/0031920181900467, +可以通过 Google Scholar 等网站搜索得到
  2. +
  3. 文献的DOI,比如 10.1016/0031-9201(81)90046-7,可以从文章的官方网站上找到, +现在大多数文章的参考文献也要求给出DOI信息
  4. +
+
+

DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 +全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, +DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 https://dx.doi.org/ 后 +(例如 https://dx.doi.org/10.1016/0031-9201(81)90046-7 )即可跳转到该文章的真实网址。

+
+

到 sci-hub 网站下载

+

访问 sci-hub 网址,比如 https://sci.hubg.org/ ,如下图所示:

+

+ + + + + + + + + + + + + + + +

+
+
sci-hub主页
+
+

+

将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。

+

直接利用网址下载全文

+

打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 sci-hub.org 即可。

+

例如,这篇文章的网址是 https://www.sciencedirect.com/science/article/pii/0031920181900467 , +在域名的后面加上 sci-hub 的域名,变成: +https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467 +即可直接下载文章全文。

+

直接利用DOI下载全文

+

已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 +https://sci-hub.org/10.1016/0031-9201(81)90046-7 即可下载文章全文。

+

注意事项

+
    +
  • +

    当文献下载过频繁会要求用户输入验证码,如下图:

    +

    + + + + + + + + + + + + + + + +

    +
    +
    sci-hub验证码
    +
    +

    +
  • +
  • +

    DOI是如 10.1016/0031-9201(81)90046-7 这样的字符串,前面不要带 doi: 等其他字符。

    +
  • +
  • +

    sci-hub 不支持下载国内期刊的文章

    +
  • +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/sci-hub/sci-hub-captcha.png b/blog/sci-hub/sci-hub-captcha.png new file mode 100644 index 00000000..67279df2 Binary files /dev/null and b/blog/sci-hub/sci-hub-captcha.png differ diff --git a/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..5dda3c42 Binary files /dev/null and b/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp b/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp new file mode 100644 index 00000000..dbc963b9 Binary files /dev/null and b/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp differ diff --git a/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp b/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp new file mode 100644 index 00000000..2e2c8c25 Binary files /dev/null and b/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp differ diff --git a/blog/sci-hub/sci-hub-homepage.jpg b/blog/sci-hub/sci-hub-homepage.jpg new file mode 100644 index 00000000..2070b1fd Binary files /dev/null and b/blog/sci-hub/sci-hub-homepage.jpg differ diff --git a/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp b/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..a87def07 Binary files /dev/null and b/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp b/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp new file mode 100644 index 00000000..0a699a90 Binary files /dev/null and b/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp differ diff --git a/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp b/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp new file mode 100644 index 00000000..51c2b644 Binary files /dev/null and b/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp differ diff --git a/blog/user-directory-warning/index.html b/blog/user-directory-warning/index.html new file mode 100644 index 00000000..b0b7727b --- /dev/null +++ b/blog/user-directory-warning/index.html @@ -0,0 +1,1207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT5在Windows下提示无法创建用户目录的解决办法 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT5在Windows下提示无法创建用户目录的解决办法

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

GMT5的某些版本(<5.4.4)在某些特定的Windows下会出现如下警告信息:

+
gmt: Unable to create GMT User directory : /Users/用户名/.gmt
+gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled.
+

这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 +在于,当前系统没有定义环境变量 HOME,进而导致GMT无法知道当前计算机的主目录的 +具体位置。

+

虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 +解决办法是:

+
1、打开 “我的电脑”->“属性”->“高级系统设置”->“环境变量”
+2、新建 “系统变量”
+     变量名: HOME
+     变量值: C:\Users\用户名
+

重新运行GMT检查问题是否得到解决,可能需要重启计算机。

+

经测试,HOME 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, +执行脚本后会生成 %HOME%/.gmt/cache 空文件夹。

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/vscode-usage/index.html b/blog/vscode-usage/index.html new file mode 100644 index 00000000..b8cac605 --- /dev/null +++ b/blog/vscode-usage/index.html @@ -0,0 +1,1476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT脚本执行利器——VS Code | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+

GMT脚本执行利器——VS Code

+ + + + + + + + + + + + + + + + +
+ + + +
+ +
+

Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。

+

注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。

+

vscode安装

+

vscode下载地址为:官网

+

安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。

+ + + + + + + + + + + + + + + + +
+
+
+
+

安装完成之后有三种打开vscode的方式:

+
    +
  1. 开始菜单中,直接找到Visual Studio Code应用程序打开。
  2. +
  3. 直接在对应脚本或工作文件夹点击右键,选择“通过Code打开(Open with Code)”。
  4. +
  5. Ctrl+R打开运行窗口,输入code (前提是重启后,vscode已加入PATH路径)。
  6. +
+

插件安装

+

vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:

+
    +
  • Code Runner 支持代码一键运行
  • +
  • vscode-pdf pdf预览插件
  • +
+

插件安装方式:打开Extensions扩展插件菜单,搜索对应插件,点击安装。安装成功之后,Install图标将变为齿轮,可点击该齿轮,修改插件属性。已安装启用的插件都可在Extension中查看设置。

+ + + + + + + + + + + + + + + + +
+
+
+
+

在 Extensions 菜单中,点击 Code Runner 插件的齿轮图标,弹出菜单中选择“Extension Settings”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。

+ + + + + + + + + + + + + + + + +
+
+
+
+

vscode执行GMT脚本过程

+

GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:

+
    +
  • 在vscode中的Explore资源管理器菜单,选择“打开文件夹“:
  • +
+ + + + + + + + + + + + + + + + +
+
+
+
+
    +
  • +

    或者,在文件夹上右键,选择“通过Code打开”:

    + + + + + + + + + + + + + + + + +
    +
    +
    +
    +

    含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“重新打开编码(Reopen with Encoding)”,选择中文简体GB2312编码。

    + + + + + + + + + + + + + + + + +
    +
    +
    +
    +

    执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。

    + + + + + + + + + + + + + + + + +
    +
    +
    +
    +

    若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:

    + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
  • +
+
+

请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。

+

如果你运行的是 bash 脚本,则必须在 gmt begin 之前添加一行 export GMT_SESSION_NAME=$$ ,否则脚本运行将出现错误。 +详情请参阅GMT中文手册的begin模块说明页面

+
+

为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:

+ + + + + + + + + + + + + + + + +
+
+
+
+

我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/vscode-usage/vscode_gif1.gif b/blog/vscode-usage/vscode_gif1.gif new file mode 100644 index 00000000..96c26bf9 Binary files /dev/null and b/blog/vscode-usage/vscode_gif1.gif differ diff --git a/blog/vscode-usage/vscode_gif2.gif b/blog/vscode-usage/vscode_gif2.gif new file mode 100644 index 00000000..c8722694 Binary files /dev/null and b/blog/vscode-usage/vscode_gif2.gif differ diff --git a/blog/vscode-usage/vscode_pic1.png b/blog/vscode-usage/vscode_pic1.png new file mode 100644 index 00000000..da25c812 Binary files /dev/null and b/blog/vscode-usage/vscode_pic1.png differ diff --git a/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..ce922381 Binary files /dev/null and b/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp b/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp new file mode 100644 index 00000000..c5d1502e Binary files /dev/null and b/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp differ diff --git a/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp b/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp new file mode 100644 index 00000000..4d30f76f Binary files /dev/null and b/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp differ diff --git a/blog/vscode-usage/vscode_pic2.png b/blog/vscode-usage/vscode_pic2.png new file mode 100644 index 00000000..3a3e427d Binary files /dev/null and b/blog/vscode-usage/vscode_pic2.png differ diff --git a/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp b/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp new file mode 100644 index 00000000..e192a1fb Binary files /dev/null and b/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp differ diff --git a/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..6601e87d Binary files /dev/null and b/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp b/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp new file mode 100644 index 00000000..685825ef Binary files /dev/null and b/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp differ diff --git a/blog/vscode-usage/vscode_pic3.jpg b/blog/vscode-usage/vscode_pic3.jpg new file mode 100644 index 00000000..6da60918 Binary files /dev/null and b/blog/vscode-usage/vscode_pic3.jpg differ diff --git a/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp b/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp new file mode 100644 index 00000000..085e4242 Binary files /dev/null and b/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp differ diff --git a/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp b/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp new file mode 100644 index 00000000..77993b40 Binary files /dev/null and b/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp differ diff --git a/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp b/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp new file mode 100644 index 00000000..60837822 Binary files /dev/null and b/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp differ diff --git a/blog/vscode-usage/vscode_pic4.png b/blog/vscode-usage/vscode_pic4.png new file mode 100644 index 00000000..ce03c963 Binary files /dev/null and b/blog/vscode-usage/vscode_pic4.png differ diff --git a/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..dc347069 Binary files /dev/null and b/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp b/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp new file mode 100644 index 00000000..6595e8f9 Binary files /dev/null and b/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp differ diff --git a/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp b/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp new file mode 100644 index 00000000..05774e8f Binary files /dev/null and b/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp differ diff --git a/blog/vscode-usage/vscode_pic5.png b/blog/vscode-usage/vscode_pic5.png new file mode 100644 index 00000000..c4c95d01 Binary files /dev/null and b/blog/vscode-usage/vscode_pic5.png differ diff --git a/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..cc2efb03 Binary files /dev/null and b/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp b/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp new file mode 100644 index 00000000..df19457a Binary files /dev/null and b/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp differ diff --git a/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp b/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp new file mode 100644 index 00000000..9344116a Binary files /dev/null and b/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp differ diff --git a/blog/vscode-usage/vscode_pic6.png b/blog/vscode-usage/vscode_pic6.png new file mode 100644 index 00000000..da60f74e Binary files /dev/null and b/blog/vscode-usage/vscode_pic6.png differ diff --git a/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..1d212a29 Binary files /dev/null and b/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp b/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp new file mode 100644 index 00000000..ae25bb27 Binary files /dev/null and b/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp differ diff --git a/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp b/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp new file mode 100644 index 00000000..12d488c6 Binary files /dev/null and b/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp differ diff --git a/blog/vscode-usage/vscode_pic7.png b/blog/vscode-usage/vscode_pic7.png new file mode 100644 index 00000000..7c77b5b9 Binary files /dev/null and b/blog/vscode-usage/vscode_pic7.png differ diff --git a/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp b/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp new file mode 100644 index 00000000..ac8b1dc7 Binary files /dev/null and b/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp differ diff --git a/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp b/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp new file mode 100644 index 00000000..57752c55 Binary files /dev/null and b/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp differ diff --git a/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp b/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp new file mode 100644 index 00000000..30dca0a8 Binary files /dev/null and b/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp differ diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 00000000..706c8a04 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,1401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Categories | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

Categories

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT技巧 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 地学数据 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 新闻动态 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 科研工具 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 社区规范 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 社区动态 +
+ + + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 00000000..69456d99 --- /dev/null +++ b/categories/index.xml @@ -0,0 +1,16 @@ + + + + Categories | GMT 中文社区 + https://gmt-china.org/categories/ + + Categories + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Categories + https://gmt-china.org/categories/ + + + + diff --git a/categories/page/1/index.html b/categories/page/1/index.html new file mode 100644 index 00000000..2de2fbd0 --- /dev/null +++ b/categories/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/categories/ + + + + + + diff --git "a/category/gmt\346\212\200\345\267\247/index.html" "b/category/gmt\346\212\200\345\267\247/index.html" new file mode 100644 index 00000000..a545a2ff --- /dev/null +++ "b/category/gmt\346\212\200\345\267\247/index.html" @@ -0,0 +1,1160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT技巧 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

GMT技巧

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT脚本执行利器——VS Code +
+ + + +
+ Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT5在Windows下提示无法创建用户目录的解决办法 +
+ + + +
+ 如何解决“无法创建用户目录”的问题? +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/category/gmt\346\212\200\345\267\247/index.xml" "b/category/gmt\346\212\200\345\267\247/index.xml" new file mode 100644 index 00000000..723bdd8b --- /dev/null +++ "b/category/gmt\346\212\200\345\267\247/index.xml" @@ -0,0 +1,320 @@ + + + + GMT技巧 | GMT 中文社区 + https://gmt-china.org/category/gmt%E6%8A%80%E5%B7%A7/ + + GMT技巧 + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + GMT技巧 + https://gmt-china.org/category/gmt%E6%8A%80%E5%B7%A7/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + GMT5在Windows下提示无法创建用户目录的解决办法 + https://gmt-china.org/blog/user-directory-warning/ + Fri, 27 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/user-directory-warning/ + <p>GMT5的某些版本(&lt;5.4.4)在某些特定的Windows下会出现如下警告信息:</p> +<pre tabindex="0"><code>gmt: Unable to create GMT User directory : /Users/用户名/.gmt +gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled. +</code></pre><p>这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 +在于,当前系统没有定义环境变量 <code>HOME</code>,进而导致GMT无法知道当前计算机的主目录的 +具体位置。</p> +<p>虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 +解决办法是:</p> +<pre tabindex="0"><code>1、打开 “我的电脑”-&gt;“属性”-&gt;“高级系统设置”-&gt;“环境变量” +2、新建 “系统变量” + 变量名: HOME + 变量值: C:\Users\用户名 +</code></pre><p>重新运行GMT检查问题是否得到解决,可能需要重启计算机。</p> +<p>经测试,<code>HOME</code> 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, +执行脚本后会生成 <code>%HOME%/.gmt/cache</code> 空文件夹。</p> + + + + + diff --git "a/category/gmt\346\212\200\345\267\247/page/1/index.html" "b/category/gmt\346\212\200\345\267\247/page/1/index.html" new file mode 100644 index 00000000..55331dda --- /dev/null +++ "b/category/gmt\346\212\200\345\267\247/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/category/gmt%E6%8A%80%E5%B7%A7/ + + + + + + diff --git "a/category/\345\234\260\345\255\246\346\225\260\346\215\256/index.html" "b/category/\345\234\260\345\255\246\346\225\260\346\215\256/index.html" new file mode 100644 index 00000000..2f6a8077 --- /dev/null +++ "b/category/\345\234\260\345\255\246\346\225\260\346\215\256/index.html" @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 地学数据 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

地学数据

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ 2021版1:100万全国标准基础地理数据!你值得拥有 +
+ + + +
+

本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。

+
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/category/\345\234\260\345\255\246\346\225\260\346\215\256/index.xml" "b/category/\345\234\260\345\255\246\346\225\260\346\215\256/index.xml" new file mode 100644 index 00000000..c35d414e --- /dev/null +++ "b/category/\345\234\260\345\255\246\346\225\260\346\215\256/index.xml" @@ -0,0 +1,387 @@ + + + + 地学数据 | GMT 中文社区 + https://gmt-china.org/category/%E5%9C%B0%E5%AD%A6%E6%95%B0%E6%8D%AE/ + + 地学数据 + Wowchemy (https://wowchemy.com)zh-HansSun, 15 Apr 2018 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 地学数据 + https://gmt-china.org/category/%E5%9C%B0%E5%AD%A6%E6%95%B0%E6%8D%AE/ + + + + 2021版1:100万全国标准基础地理数据!你值得拥有 + https://gmt-china.org/blog/national-geographic-database/ + Sun, 15 Apr 2018 00:00:00 +0000 + https://gmt-china.org/blog/national-geographic-database/ + <p>本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。</p> +<p>具体包括:</p> +<ul> +<li>国家标准1:100万(非涉密)基础地理数据的申请、下载</li> +<li>数据集内容简介</li> +<li>数据集要素合并、提取及格式转换</li> +</ul> +<div class="alert alert-info"> + <div> + 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 +《地图管理条例》有关规定依法履行地图审核程序。 + </div> +</div> +<h2 id="数据概况">数据概况</h2> +<p>国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:</p> +<ul> +<li>共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。</li> +<li>包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。</li> +</ul> +<p>数据更多介绍可访问<a href="http://www.webmap.cn/commres.do?method=result100W" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>。</p> +<h2 id="数据获取">数据获取</h2> +<ul> +<li>进入<a href="http://www.webmap.cn" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>,点右上角“注册”。已注册用户直接登陆。</li> +<li>在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。</li> +<li>该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。</li> +<li>结算,填写订单中的个人信息,<strong>验证手机号</strong>,下载数据。 +**注:**若未提示验证手机,换个firefox浏览器试试。</li> +</ul> +<h2 id="数据集内容简介">数据集内容简介</h2> +<p>该数据集包括5类12个要素集,如下图所示:</p> + + + + + + + + + + + + + + + + +<figure id="figure-全国基础地理数据库数据集"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="全国基础地理数据库数据集" srcset=" + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp 400w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp 760w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp" + width="760" + height="282" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 全国基础地理数据库数据集 + </figcaption></figure> +<p>每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:</p> +<p><strong>BOUL 中国及邻区各级行政界限(线)图层</strong></p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="BOUL" srcset=" + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp 400w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp 760w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp" + width="760" + height="616" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>该数据集包括各级行政区界线,以GB码进行区分:</p> +<table> +<thead> +<tr> +<th>行政区界类型</th> +<th>GB码</th> +</tr> +</thead> +<tbody> +<tr> +<td>海岸线</td> +<td>250200</td> +</tr> +<tr> +<td>水系交汇处</td> +<td>260100</td> +</tr> +<tr> +<td>外国地区国界线</td> +<td>610200</td> +</tr> +<tr> +<td>国界线(已定)</td> +<td>620201</td> +</tr> +<tr> +<td>国界线(未定)</td> +<td>620202</td> +</tr> +<tr> +<td>省级界线</td> +<td>630200</td> +</tr> +<tr> +<td>特别行政区界</td> +<td>630400</td> +</tr> +<tr> +<td>地、市、州级行政区界</td> +<td>640200</td> +</tr> +<tr> +<td>县级行政区界</td> +<td>650200</td> +</tr> +<tr> +<td>特殊地区界限</td> +<td>670202</td> +</tr> +</tbody> +</table> +<p>其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。</p> +<p>此外,常用的还有 <strong>AGNP 各级行政地名和城乡居民地坐标(点)图层</strong></p> +<p>行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:</p> +<table> +<thead> +<tr> +<th>行政地名点类型</th> +<th>CLASS类别</th> +</tr> +</thead> +<tbody> +<tr> +<td>国名</td> +<td>AA</td> +</tr> +<tr> +<td>省(直辖市、自治区、特别行政区)行政地名</td> +<td>AB</td> +</tr> +<tr> +<td>自治州、盟、地区行政地名</td> +<td>AC</td> +</tr> +<tr> +<td>地级市行政地名</td> +<td>AD</td> +</tr> +<tr> +<td>县级市行政地名</td> +<td>AE</td> +</tr> +<tr> +<td>县(自治县、旗、自治旗、地级市市辖区)级市行政地名</td> +<td>AF</td> +</tr> +<tr> +<td>县辖区及县级行政区域的派出机构地名</td> +<td>AG</td> +</tr> +<tr> +<td>街道办事处地名</td> +<td>AH</td> +</tr> +<tr> +<td>镇行政地名</td> +<td>AI</td> +</tr> +<tr> +<td>乡行政地名</td> +<td>AJ</td> +</tr> +<tr> +<td>建制村地名</td> +<td>AK</td> +</tr> +<tr> +<td>城镇区片、小区名</td> +<td>BA</td> +</tr> +<tr> +<td>自然村、屯、片村、村民小组名</td> +<td>BB</td> +</tr> +<tr> +<td>牧点、渔点、棚房名</td> +<td>BC</td> +</tr> +<tr> +<td>其它</td> +<td>BD</td> +</tr> +<tr> +<td>党政机关、党派团体名</td> +<td>CA</td> +</tr> +<tr> +<td>企事业单位名</td> +<td>CB</td> +</tr> +<tr> +<td>农、林、牧、渔场</td> +<td>CC</td> +</tr> +</tbody> +</table> +<h2 id="数据处理">数据处理</h2> +<p>从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:</p> +<ul> +<li>合并77个gdb文件中的同类要素</li> +<li>提取某类要素中的某个等级数据</li> +<li>转为gmt识别的文本格式</li> +</ul> +<h3 id="gdb数据库文件合并">gdb数据库文件合并</h3> +<p>采用本社区一贯推荐的<a href="https://docs.gmt-china.org/latest/utilities/gdal/" target="_blank" rel="noopener">GDAL/ORG库</a>将分幅的gdb数据进行批量合并。 +首先解压所有下载的压缩包,得到以<code>.gdb</code>结尾的目录。目录名类似<code>H51.gdb</code>、<code>I49.gdb</code>等。 +然后在这些目录的上级目录执行以下脚本:</p> +<p>Linux系统: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;./final&#34;</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> i in <span class="k">$(</span>ls -d *.gdb<span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> ! -d <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> <span class="o">]</span> +</span></span><span class="line"><span class="cl"> <span class="k">then</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;creating final filefolder&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -lco <span class="nv">encoding</span><span class="o">=</span>UTF-8 +</span></span><span class="line"><span class="cl"> <span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;merging……&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -update -append +</span></span><span class="line"><span class="cl"><span class="k">fi</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span></code></pre></div></p> +<p>Windows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bat" data-lang="bat"><span class="line"><span class="cl"><span class="c1">REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged</span> +</span></span><span class="line"><span class="cl"><span class="c1">REM 编码为UTF-8以正确显示属性字段中的中文</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -lco encoding=UTF-8 Merged A49.gdb +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="k">/f</span> <span class="se">%%</span>i <span class="k">in</span> <span class="p">(</span><span class="s1">&#39;dir /b &#34;*.gdb&#34;&#39;</span><span class="p">)</span> <span class="k">do</span> <span class="p">(</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -update -append Merged <span class="se">%%</span>i +</span></span><span class="line"><span class="cl"><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">pause</span> +</span></span></code></pre></div></p> +<p>若安装有python环境,还可选择<code>ogrmerge.py</code>工具进行批量的格式转换和合并,详见<a href="https://www.gdal.org/ogrmerge.html" target="_blank" rel="noopener">ogrmerge使用手册</a>。</p> +<p>该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。</p> +<h3 id="查询gb代码与class类别">查询GB代码与CLASS类别</h3> +<p>使用<code>ogrinfo</code>可以查询shp文件内包含哪些要素。例如以下命令查询<code>BOUL.shp</code>中包含的GB代码:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct GB FROM BOUL&#34; BOUL.shp +</code></pre><p>而以下命令则查询<code>AGNP.shp</code>中包含的CLASS类别:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct CLASS FROM AGNP&#34; AGNP.shp +</code></pre><h3 id="提取某类要素">提取某类要素</h3> +<p>由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用<code>ogr2ogr</code>工具提供的sql查询选项进行提取。</p> +<p>例如:</p> +<p>行政区划<code>BOUL</code>图层中GB代码<code>620201</code>、<code>620202</code>、<code>250200</code>分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;GB=620201 or GB=620202 or GB=250200&#34; BOUL_sub.gmt BOUL.shp +</code></pre><p>最后GMT绘图如下:</p> +<pre tabindex="0"><code>gmt begin ChinaMap + gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i +gmt end show +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="ChinaMap" srcset=" + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp 400w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp 760w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp" + width="760" + height="721" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>如果想要提取行政地名点<code>AGNP</code>图层中的建制村信息(对应CLASS为AK),则使用:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;CLASS=&#39;AK&#39;&#34; AGNP.gmt AGNP.shp +</code></pre><p>注意因为CLASS类别为字符串,所以此处<code>AK</code>需要加上引号。GB代码为整型数因而不需要加引号。</p> +<p>最后转换成的GMT格式数据如下:</p> +<pre tabindex="0"><code>... +# @NCLASS|NAME|PINYIN|GNID|XZNAME +# @Tstring|string|string|string|string +# FEATURE_DATA +# @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡 +121.68517089 29.388652295 +# @DAK|坝头村|Batoucun|331022000000|亭旁镇 +121.310746425 29.0109724900001 +# @DAK|白岩村|Baiyancun|331082111028|尤溪镇 +120.971417165 28.7226002200001 +# @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道 +121.257111875 28.8522451100001 +... +</code></pre><p>以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:</p> +<pre tabindex="0"><code>gmt begin AGNP jpg + gmt set PS_CHAR_ENCODING Standard+ + + gmt basemap -R120/121/28/29 -JM10c -Baf + gmt grdimage @earth_relief_15s -Cgeo + gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt + chcp 936 + gmt convert AGNP.gmt -a2=&#34;NAME&#34; | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite +gmt end +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="AGNP" srcset=" + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp 400w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp 760w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp" + width="760" + height="758" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + diff --git "a/category/\345\234\260\345\255\246\346\225\260\346\215\256/page/1/index.html" "b/category/\345\234\260\345\255\246\346\225\260\346\215\256/page/1/index.html" new file mode 100644 index 00000000..ada141ad --- /dev/null +++ "b/category/\345\234\260\345\255\246\346\225\260\346\215\256/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/category/%E5%9C%B0%E5%AD%A6%E6%95%B0%E6%8D%AE/ + + + + + + diff --git "a/category/\346\226\260\351\227\273\345\212\250\346\200\201/index.html" "b/category/\346\226\260\351\227\273\345\212\250\346\200\201/index.html" new file mode 100644 index 00000000..db339ac1 --- /dev/null +++ "b/category/\346\226\260\351\227\273\345\212\250\346\200\201/index.html" @@ -0,0 +1,1065 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新闻动态 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

新闻动态

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT 中文社区第三次线下聚餐 +
+ + + +
+ 2017年10月,GMT中文社区在北京举行了第三个线下聚餐。 +
+
+ + + + + + +
+
+ + + + + GMT 中文社区第三次线下聚餐 + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/category/\346\226\260\351\227\273\345\212\250\346\200\201/index.xml" "b/category/\346\226\260\351\227\273\345\212\250\346\200\201/index.xml" new file mode 100644 index 00000000..83559657 --- /dev/null +++ "b/category/\346\226\260\351\227\273\345\212\250\346\200\201/index.xml" @@ -0,0 +1,91 @@ + + + + 新闻动态 | GMT 中文社区 + https://gmt-china.org/category/%E6%96%B0%E9%97%BB%E5%8A%A8%E6%80%81/ + + 新闻动态 + Wowchemy (https://wowchemy.com)zh-HansTue, 17 Oct 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 新闻动态 + https://gmt-china.org/category/%E6%96%B0%E9%97%BB%E5%8A%A8%E6%80%81/ + + + + GMT 中文社区第三次线下聚餐 + https://gmt-china.org/blog/gud-20171017/ + Tue, 17 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/gud-20171017/ + <p>金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。</p> +<p>2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。</p> +<p>在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。</p> +<p>希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。</p> +<p>科研道路上,知己天涯若比邻,期待下次再聚~</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp 400w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp 760w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + +<figure id="figure-从左至右依次为章浩东中科院地质与地球物理所王志伟地震局地质研究所王少卿地震局地球物理所-张琰地震局地球物理所张周广州地化所徐荟地震局地球物理所王亮成都理工杨晓瑜地震局地球物理所李佳威地震局地球物理所北大神秘人田冬冬中科大任昱南海所方洪健中科大胡少乾中科大"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所&#43;北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)" srcset=" + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp 400w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp 760w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp" + width="760" + height="493" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) + </figcaption></figure> + + + + + diff --git "a/category/\346\226\260\351\227\273\345\212\250\346\200\201/page/1/index.html" "b/category/\346\226\260\351\227\273\345\212\250\346\200\201/page/1/index.html" new file mode 100644 index 00000000..504f7a83 --- /dev/null +++ "b/category/\346\226\260\351\227\273\345\212\250\346\200\201/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/category/%E6%96%B0%E9%97%BB%E5%8A%A8%E6%80%81/ + + + + + + diff --git "a/category/\347\244\276\345\214\272\345\212\250\346\200\201/index.html" "b/category/\347\244\276\345\214\272\345\212\250\346\200\201/index.html" new file mode 100644 index 00000000..2c2af15b --- /dev/null +++ "b/category/\347\244\276\345\214\272\345\212\250\346\200\201/index.html" @@ -0,0 +1,1479 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 社区动态 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

社区动态

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区第二次线下聚餐 +
+ + + +
+ GMT中文社区在湖北武汉组织了第二次线下聚餐。 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区首次线下培训 +
+ + + +
+

2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。

+
+
+ + + + + + +
+
+ + + + + GMT中文社区首次线下培训 + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区首次线下聚餐 +
+ + + +
+

2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。

+
+
+ + + + + + +
+
+ + + + + GMT中文社区首次线下聚餐 + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT国内镜像正式建成 +
+ + + +
+ GMT国内镜像正式建成 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区正式成立 +
+ + + +
+ GMT中文社区于今日正式成立了! +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/category/\347\244\276\345\214\272\345\212\250\346\200\201/index.xml" "b/category/\347\244\276\345\214\272\345\212\250\346\200\201/index.xml" new file mode 100644 index 00000000..fbeb6b52 --- /dev/null +++ "b/category/\347\244\276\345\214\272\345\212\250\346\200\201/index.xml" @@ -0,0 +1,353 @@ + + + + 社区动态 | GMT 中文社区 + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81/ + + 社区动态 + Wowchemy (https://wowchemy.com)zh-HansTue, 27 Sep 2016 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 社区动态 + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81/ + + + + GMT中文社区第二次线下聚餐 + https://gmt-china.org/blog/gud-20160921/ + Tue, 27 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160921/ + <p>2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 +刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), +四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。</p> +<p>聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 +被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 +欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 +工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 +腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 +将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, +并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 +和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 +仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!</p> +<p>随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 +全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 +此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” +美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。</p> +<p>GMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, +为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 +遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 +一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, +但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!</p> + + + + + + + + + + + + + + + + +<figure id="figure-参会人员从左往右依次为章婷湖北省地震局刘珠妹中国地震局地震研究所王丽霞中国地震局兰州地震研究所杨萍中国地震局兰州地震研究所郑海刚安徽省地震局谢小晋中国地质大学-武汉贾媛山东省地震局杨锦玲福建省地震局田冬冬中国科学技术大学肖晓武汉大学赵志远河北省地震局刘旭耀中国地质大学-武汉罗娜河北省地震局邓明莉中国科学院测量与地球物理研究所刘成利中国地质大学-武汉单斌中国地质大学-武汉"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉)" srcset=" + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp 400w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp 760w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) + </figcaption></figure> + + + + + GMT中文社区首次线下培训 + https://gmt-china.org/blog/gmtcon-20160921/ + Sun, 25 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmtcon-20160921/ + <p>2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。</p> +<p>此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 +单斌(中国地质大学特任教授,社区 ID:Bins)和 +刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 +做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 +专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。</p> +<p>此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, +经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 +讲座的最终主题。</p> +<p>21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, +随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 +学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 +仁人志士加入到GMT社区的设计和日常维护中。</p> +<p>单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 +编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 +最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 +分享交流。</p> +<p>22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 +使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, +介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 +二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, +具体问题具体分析,带着问题去找答案。</p> +<p>此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, +推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, +促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, +此次培训取得了预期效果,期待下一次培训的召开。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="田冬冬" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="单斌" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="刘珠妹" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="现场互动" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + GMT中文社区首次线下聚餐 + https://gmt-china.org/blog/gud-20160628/ + Sat, 24 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160628/ + <p>2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。</p> +<p>6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 +“首届中国区域地震学参考模型交流会”。 +社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。</p> +<p>6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 +在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。</p> + + + + + + + + + + + + + + + + +<figure id="figure-左至右依次为李佳威中国地震局地球物理研究所王志伟中国地震局地质研究所田冬冬中国科学技术大学王亮桂林理工大学李君中国地震局第二监测中心"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心" srcset=" + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp 400w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp 760w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 + </figcaption></figure> + + + + GMT国内镜像正式建成 + https://gmt-china.org/blog/mirror-site-founded/ + Fri, 08 Jul 2016 00:00:00 +0000 + https://gmt-china.org/blog/mirror-site-founded/ + <p>经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 +该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 +GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。</p> +<h2 id="gmt-源码包镜像">GMT 源码包镜像</h2> +<p>镜像地址:<a href="http://mirrors.ustc.edu.cn/gmt/" target="_blank" rel="noopener">http://mirrors.ustc.edu.cn/gmt/</a></p> +<p>GMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 +进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 <code>bin</code> 目录下。</p> +<h2 id="gmt-远程数据镜像">GMT 远程数据镜像</h2> +<p>镜像地址:<a href="https://mirrors.ustc.edu.cn/gmtdata/" target="_blank" rel="noopener">https://mirrors.ustc.edu.cn/gmtdata/</a></p> +<p>GMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 +<a href="https://docs.gmt-china.org/latest/dataset/usage/" target="_blank" rel="noopener">https://docs.gmt-china.org/latest/dataset/usage/</a>。</p> + + + + + GMT中文社区正式成立 + https://gmt-china.org/blog/gmt-china-community-founded/ + Wed, 06 Apr 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmt-china-community-founded/ + <p>GMT的中文用户们,大家好,我是 <a href="https://seisman.info" target="_blank" rel="noopener">seisman</a> 。</p> +<p>GMT中文社区于今日正式成立了!</p> +<p>GMT中文社区是针对GMT中文用户而成立的社区。整个社区目前包含了三个主要部分: +社区主站、GMT中文手册和问答社区。</p> +<p>在社区的第一篇博文中,我想谈谈建立这个社区的原因及一些想法。</p> +<h2 id="gmt中文手册">GMT中文手册</h2> +<p>GMT中文手册的项目始于2014年,到2016年初已经初步成形。</p> +<p>在2014年,网络上能够找到的几本GMT中文文档,大多基于GMT4甚至GMT3。 +这几本文档存在一些明显的缺陷:</p> +<ol> +<li>排版质量一般,大多是在Word里写好然后转换成PDF的</li> +<li>缺乏维护,几乎都是写好发布之后就没有再更新</li> +<li>不完整,很多有价值的内容都没有被包含在文档中</li> +<li>不严谨,很多文档声称是基于GMT4,但实际上某些命令却在使用GMT3的语法</li> +<li>无法适配最新版的GMT,某些时候对于新用户而言是一种障碍</li> +<li>重复劳动:不同的作者,花费了大量的时间和精力,翻译整理出了几份相似的文档, +这其中很多工作都是在重复劳动</li> +</ol> +<p>因而,我于2014年开始写针对GMT5的中文手册。新的GMT中文手册具有如下特点:</p> +<ol> +<li>开源:源代码用rST语言写成,并在GitHub上开源</li> +<li>高质量排版:文档有网页版和PDF版,保证高质量的排版(目前尚存在不足,见第5条)</li> +<li>完整性:尽可能覆盖GMT的方方面面,成为一个完整的参考手册(没有最完整,只有更完整,见第5条)</li> +<li>协同合作:依托强大的GitHub和Git,使得多人合作共同编辑同一份文档变得很简单</li> +<li>持续维护:不仅适配GMT的新版本,而且不断修正文档中存在的错误</li> +<li>严谨性:尽可能保证所有命令均通过GMT最新版本的测试</li> +</ol> +<p>经过两年努力,文档的整体结构已经大体完成。我希望文档今后能够持续更新,不断完善, +不管是接下来的GMT 5.2.2、5.3.0还是未来的GMT 6.0甚至7.0,都能随着GMT版本的升级 +而不断更新,但这些已非我一人之力所能完成。众人拾柴火焰高。我希望有更多的GMT中文 +用户加入到文档维护的队伍中来,这便是我建立GMT中文社区的目的。</p> +<h2 id="问答社区">问答社区</h2> +<div class="alert alert-note"> + <div> + 问答社区试运行了一段时间,但最终还是因为用户参与度较低而决定关闭问答社区。 + </div> +</div> +<p>GMT问答社区的前身是地学GMT学习群(群号:218905582)。QQ群属于即时通讯,通常在 +群中提的问题都可以快速得到答案,但与此同时,QQ群存在如下缺点:</p> +<ol> +<li>即时性导致的随意性:由于QQ本质上是一种聊天工具,导致很多人在提问时太过随意。 +遇到问题时,不加思索在QQ群中提问,却不去思考如何提问,如何在提问时提供完整 +有效的信息,如何在提问时解释清楚自己想要实现什么和遇到了什么问题。 +QQ群中的很多提问都是如此,需要回答者多次向提问者发问才能搞清楚提问者的问题。 +这不仅浪费了回答者的时间,也不利于提问者能力的提高。</li> +<li>多话题引起的错乱:经常遇到几个人同时提问,几个话题互相交叉,使得搞不清到底谁在回复谁</li> +<li>问答记录无法长期保存:只有用户接收到的消息会被保存到本地磁盘中,而对于 +新加入的成员而言,则无法看到历史聊天记录</li> +<li>问答记录无法搜索:仅当聊天记录保存在本地磁盘中才能被搜索,无法通过搜索引擎检索</li> +<li>问答记录无法被非群成员搜索:有大量的GMT用户未加入群中,这些非成员则无法获取这些优质的问答资源</li> +<li>Linux用户提问不便:Linux下几乎没有可用的QQ客户端,导致众多Linux下的GMT用户 +只能通过手机打字在群中提问,且只能通过手机拍照的方式上传屏幕截图</li> +</ol> +<p>鉴于QQ群的以上几个缺点,萌生了建立问答社区的想法。希望这样一个问答社区可以解决QQ +群存在的问题。问答社区将努力保持高信噪比,专注于GMT的问与答。</p> +<h2 id="gmt中文社区">GMT中文社区</h2> +<p>最初是计划把中文手册以及问答社区都放在我自己的博客域名之下的,但这样做一方面 +不够正式,另一方面也会影响到我对于自己博客的整体定位。最终经过一番考量之后, +决定单独购买域名,建立GMT中文社区,然后将文档以及问答社区作为GMT中文社区的子项目。</p> +<p>现在,整个GMT中文社区的基本框架已经搭建完毕。我希望它能顺利运行下去,也欢迎 +更多的人提意见和建议,加入到整个社区的维护中来。</p> +<p>最后,我要感谢王亮在整个社区的建立过程中和我交流与讨论,并给出了很多有意义的建议。 +我还要感谢各种开源服务,我的工作是建立在它们之上的。我也希望华语地学界有更多的 +人了解开源、认同开源、热爱开源并最终参与到开源中来。</p> + + + + + diff --git "a/category/\347\244\276\345\214\272\345\212\250\346\200\201/page/1/index.html" "b/category/\347\244\276\345\214\272\345\212\250\346\200\201/page/1/index.html" new file mode 100644 index 00000000..894589dc --- /dev/null +++ "b/category/\347\244\276\345\214\272\345\212\250\346\200\201/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81/ + + + + + + diff --git "a/category/\347\244\276\345\214\272\350\247\204\350\214\203/index.html" "b/category/\347\244\276\345\214\272\350\247\204\350\214\203/index.html" new file mode 100644 index 00000000..aea64ac9 --- /dev/null +++ "b/category/\347\244\276\345\214\272\350\247\204\350\214\203/index.html" @@ -0,0 +1,1161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 社区规范 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

社区规范

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT 中文社区 QQ 群入群须知 +
+ + + +
+ 如何在 QQ 群中正确提问? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 投稿须知 +
+ + + +
+ 如何向GMT中文社区投稿? +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/category/\347\244\276\345\214\272\350\247\204\350\214\203/index.xml" "b/category/\347\244\276\345\214\272\350\247\204\350\214\203/index.xml" new file mode 100644 index 00000000..dcc66b81 --- /dev/null +++ "b/category/\347\244\276\345\214\272\350\247\204\350\214\203/index.xml" @@ -0,0 +1,184 @@ + + + + 社区规范 | GMT 中文社区 + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E8%A7%84%E8%8C%83/ + + 社区规范 + Wowchemy (https://wowchemy.com)zh-HansWed, 23 Aug 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 社区规范 + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E8%A7%84%E8%8C%83/ + + + + GMT 中文社区 QQ 群入群须知 + https://gmt-china.org/blog/community-guide/ + Wed, 23 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/community-guide/ + <p>欢迎加入“地学GMT中文社区群”:</p> +<p><i class="fab fa-qq"></i> 一群:218905582 +<br> +<i class="fab fa-qq"></i> 二群:791856541</p> +<p>GMT 中文社区群是一个相对活跃且学术氛围浓厚的群。本文是 GMT 中文社区群的入群须知, +也是 GMT 中文社区的提问规范。希望所有群友可以阅读并遵守以下规范来营造更好的群环境。</p> +<div class="row "> +<div class="col-md-6"> +<h4 id="群内可以做的事">群内可以做的事</h4> +<ul> +<li>GMT 相关问题</li> +<li>其他地学软件相关问题</li> +<li>地学科研相关问题</li> +<li>求助文献</li> +<li>发科研相关的培训、会议信息</li> +<li>介绍并推广自己的最新研究成果</li> +</ul> +</div> +<div class="col-md-6"> +<h4 id="群内禁止做的事">群内禁止做的事:</h4> +<ul> +<li>发广告</li> +<li>签到、灌水等无意义行为</li> +<li>人身攻击</li> +<li>讨论政治问题</li> +</ul> +</div> +</div> +<h2 id="安装类问题">安装类问题</h2> +<p>如果你在安装 GMT 的过程中遇到问题,请参照下面的模板提问。</p> +<div class="alert alert-info"> + <div> + <p>我在安装 GMT 的时候遇到了问题,请问该如何解决?谢谢。</p> +<ul> +<li><strong>操作系统是</strong>: Windows XP | Windows 7 | Ubuntu | CentOS | macOS &hellip;</li> +<li><strong>要安装的GMT版本是</strong>: GMT 4.5.16 | GMT 5.4.2 &hellip;</li> +<li><strong>安装GMT参考的文档是</strong>: <em>此处可贴文档的网址</em></li> +<li><strong>安装过程中显示的错误信息为</strong>: <em>此处可贴图</em></li> +</ul> + </div> +</div> +<h2 id="思路类问题">思路类问题</h2> +<p>想要实现某一类图,但不知GMT能否实现或没有实现的思路。</p> +<p>如果别人文章中有自己想要实现的效果图就直接贴图,并指出自己在实现图中哪一部分 +时没有思路。如果找不到已有的效果图,可以考虑手绘示意图,或精准描述自己想要的 +效果,以免引起误会,造成不必要的时间浪费。</p> +<div class="alert alert-info"> + <div> + <p><em>此处先贴一张图</em></p> +<p>请问图中的XXXXX能否用GMT实现?该如何实现?谢谢。</p> + </div> +</div> +<div class="alert alert-info"> + <div> + 请问我想用GMT实现XXX效果。<em>此处详细介绍自己想要的效果</em> 。不知GMT中该如何实现? +谢谢。 + </div> +</div> +<p>如果遇到自己画出来的图与自己预期的图不一致,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>当前效果</strong>:截图</li> +<li><strong>预期效果</strong>:预期效果截图,或对预期效果的精确描述</li> +<li><strong>我的代码是</strong>:给出自己使用的代码,可以截图可以贴代码。最好是给出最小示例而不是一堆代码。</li> +<li><strong>GMT版本是</strong>: GMT 5.4.2</li> +</ul> + </div> +</div> +<h2 id="脚本报错类">脚本报错类</h2> +<p>遇到绘图脚本或数据处理脚本出错时,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>我想要实现的是</strong> :&hellip;</li> +<li><strong>我的命令/脚本是</strong>: 可截图或贴脚本</li> +<li><strong>终端报错是</strong>: 终端报错截图</li> +</ul> + </div> +</div> +<h2 id="文献求助">文献求助</h2> +<p>需要他人帮忙下载文献时,请先使用 sci-hub 工具自行尝试下载 +(<a href="https://gmt-china.org/blog/sci-hub/">sci-hub教程</a>)。</p> +<p>对于中文文献或 sci-hub 无法下载的文献,方可在群中寻找帮助。求助文献时,请先明确 +告知“使用 sci-hub无 法下载该文章”并提供文章的官方链接。若找不到官方链接,则提供 +文章的标题、作者、期刊、年份等信息。</p> +<p>求助文献示例如下:</p> +<div class="alert alert-info"> + <div> + 文献求助!我已经尝试用 sci-hub 下载但依然下载不到。文章链接为: XXXXXXX。谢谢。 + </div> +</div> +<h2 id="提问的智慧">提问的智慧</h2> +<p>时间对任何人都是一笔宝贵的财富。没有人有义务回答你的问题。在期望别人回答你的问题 +之前先要问一问自己针对这个问题做了哪些努力。</p> +<h3 id="提问前需要做的事情">提问前需要做的事情</h3> +<p>大多数的问题,文档都可以为你提供标准的解答。因此在你提问之前,你最好先去阅读一下 +相关的文档,至少确保你阅读过一份完整的入门文档。如果你能够在你提问的同时表明 +自己已经阅读过文档,但是依旧留有困惑,潜在的回答者会更加愿意为你解答。</p> +<p>推荐的一些文档:</p> +<ul> +<li><a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文社区:图库</a></li> +<li><a href="https://docs.gmt-china.org/" target="_blank" rel="noopener">GMT 中文手册</a></li> +<li><a href="https://docs.generic-mapping-tools.org/latest/" target="_blank" rel="noopener">GMT 官方文档</a></li> +</ul> +<h3 id="提问技巧">提问技巧</h3> +<ol> +<li>精确描述自己做了什么,遇到了什么问题,要提供足够的信息给潜在的回答者,尽量避免 +回答者多次要求提问者补充额外的信息的情况。</li> +<li>提供当前所使用的代码。贴完图之后如果自行修正了代码中的某些错误,一定要更新图。</li> +<li>提供截图以及文本。有些时候需要准确看到代码的样子,此时截图更合适;有些时候需要 +复制代码在自己电脑上跑一遍,此时提供文本更合适。</li> +<li>提问时说一说自己为了解决这个问题做了哪些事情,没人喜欢“伸手党”。</li> +<li>时间对任何人都是一笔宝贵的财富,请心怀感恩之心。</li> +<li>当你解决了某个问题(不管是别人帮助还是自己茅塞顿开),请不要吝啬告诉大家你的解决方案</li> +<li>当别人正在讨论某个问题时,请不要中间插入自己的问题,待别人的问题告一段落之后再提问。</li> +<li>除非必要,不要在首次发问的时候@某个人,这样给所有人的感觉是你在向这个人提问, +从而失去了更多的潜在回答者。</li> +<li>有问题就直接问,不必管有没有人用过。很多时候,你在A软件中遇到的问题可能跟A软件 +完全没有关系,完全没接触过A软件的人可能也可以帮你解决该问题。</li> +</ol> + + + + + 投稿须知 + https://gmt-china.org/blog/instructions-for-authors/ + Thu, 17 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/instructions-for-authors/ + <p>GMT 中文社区欢迎读者投稿,稿件主要包括社区博文和绘图实例两大类。</p> +<h2 id="稿件类型">稿件类型</h2> +<h3 id="社区博文">社区博文</h3> +<p>社区博文是与 GMT 官方及社区活动有关的简短文章,包括但不限于:</p> +<ol> +<li>GMT 官方新闻(比如新版本发布)</li> +<li>GMT 社区新闻(比如聚餐与培训)</li> +<li>GMT 使用技巧等</li> +</ol> +<h3 id="绘图实例">绘图实例</h3> +<p>绘图实例是指使用 GMT 绘制的具有典型性的图件。 +目前社区维护的绘图实例位于 +<a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文手册:绘图实例</a>中。</p> +<p>请参考<a href="https://docs.gmt-china.org/latest/contributing/" target="_blank" rel="noopener">GMT 中文手册:贡献指南</a>, +直接向中文手册提交绘图实例。</p> +<h2 id="投稿方式">投稿方式</h2> +<p>可以通过如下几种方式投稿:</p> +<ol> +<li>直接在 <a href="https://github.com/gmt-china/gmt-china.org" target="_blank" rel="noopener">社区主页</a> +或 <a href="https://github.com/gmt-china/GMT_docs" target="_blank" rel="noopener">GMT中文手册</a> 的 GitHub 仓库中 +提交 Issue 或 Pull Request。 +(不熟悉 Pull Request 的读者可以参考 <a href="https://seismo-learn.org/contributing/pull-request/" target="_blank" rel="noopener">Pull Request 流程</a></li> +<li>将稿件发送至 <a href="mailto:admin@gmt-china.org">admin@gmt-china.org</a></li> +</ol> +<h2 id="作者权益">作者权益</h2> +<p>请确保你有将稿件投稿到社区的权利,特别是在图件修改自他人图件的情况下。 +你所拥有的权益是稿件公开后,你有署名权(如果维护者对你的稿件有大改, +则维护者可能会在你的名字后面署名)。接受的稿件在公开后,任何人对你的稿件都可以 +以任何媒介以任何形式进行复制、发行、修改、转换或以其为基础进行再创作用于任何 +可能的用途,包括商业目的。别人在使用你的作品之后,应当提及你和 GMT 中文社区, +但社区无法保证第三方会尊重你的权益。</p> + + + + + diff --git "a/category/\347\244\276\345\214\272\350\247\204\350\214\203/page/1/index.html" "b/category/\347\244\276\345\214\272\350\247\204\350\214\203/page/1/index.html" new file mode 100644 index 00000000..ae61e697 --- /dev/null +++ "b/category/\347\244\276\345\214\272\350\247\204\350\214\203/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E8%A7%84%E8%8C%83/ + + + + + + diff --git "a/category/\347\247\221\347\240\224\345\267\245\345\205\267/index.html" "b/category/\347\247\221\347\240\224\345\267\245\345\205\267/index.html" new file mode 100644 index 00000000..4d46c651 --- /dev/null +++ "b/category/\347\247\221\347\240\224\345\267\245\345\205\267/index.html" @@ -0,0 +1,1165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 科研工具 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

科研工具

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ 利用 Google Maps 获取超高精度高程数据 +
+ + + +
+ 如何获得米级精度的高程数据? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 使用sci-hub下载文献 +
+ + + +
+ 教你如何用sci-hub下载文献 +
+
+ + + + + + +
+
+ + + + + 使用sci-hub下载文献 + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/category/\347\247\221\347\240\224\345\267\245\345\205\267/index.xml" "b/category/\347\247\221\347\240\224\345\267\245\345\205\267/index.xml" new file mode 100644 index 00000000..22b52d11 --- /dev/null +++ "b/category/\347\247\221\347\240\224\345\267\245\345\205\267/index.xml" @@ -0,0 +1,263 @@ + + + + 科研工具 | GMT 中文社区 + https://gmt-china.org/category/%E7%A7%91%E7%A0%94%E5%B7%A5%E5%85%B7/ + + 科研工具 + Wowchemy (https://wowchemy.com)zh-HansThu, 14 Sep 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 科研工具 + https://gmt-china.org/category/%E7%A7%91%E7%A0%94%E5%B7%A5%E5%85%B7/ + + + + 利用 Google Maps 获取超高精度高程数据 + https://gmt-china.org/blog/google-maps-elevation-api/ + Thu, 14 Sep 2017 00:00:00 +0000 + https://gmt-china.org/blog/google-maps-elevation-api/ + <p>在绘制超小区域的地形图时,常需要超高精度的高程数据。</p> +<p>目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 +可以通过 Google Maps Elevation API 获取米级精度的数据。</p> +<h2 id="数据简介">数据简介</h2> +<p>Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 +置(此类位置返回负值)。</p> +<p>官方文档:</p> +<ul> +<li><a href="https://developers.google.com/maps/documentation/elevation/start?hl=zh-cn" target="_blank" rel="noopener">入门指南</a></li> +<li><a href="https://developers.google.com/maps/documentation/elevation/intro?hl=zh-cn" target="_blank" rel="noopener">开发人员指南</a></li> +</ul> +<h2 id="获取密钥-api-key">获取密钥 API KEY</h2> +<p>想要从Google Maps中获取地形数据,首先需要一个密钥。 +可以从 <a href="https://developers.google.com/maps/documentation/elevation/get-api-key" target="_blank" rel="noopener">get API key</a> +页面开始申请秘钥(需要提供信用卡等信息)。</p> +<p>限额说明:</p> +<ul> +<li>每个用户最多可能只能申请10个免费密钥</li> +<li>每个密钥每天2500次免费请求</li> +<li>每次请求最多512个位置</li> +<li>每秒最多50次请求</li> +</ul> +<h2 id="使用说明">使用说明</h2> +<h3 id="获取单点高程">获取单点高程</h3> +<p>通过简单的网络请求即可获取单点的高程:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&amp;key=YOUR_API_KEY +</code></pre><p>其中:</p> +<ul> +<li><code>locations=39.7391536,-104.9847034</code> 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔;</li> +<li><code>key=YOU_API_KEY</code> 指定了用户密钥,用户需要将自己申请的密钥替换 <code>YOU_API_KEY</code></li> +</ul> +<p>将上面的链接复制到浏览器中,即可得到返回值为::</p> +<pre><code>{ + &quot;results&quot; : [ + { + &quot;elevation&quot; : 1608.637939453125, + &quot;location&quot; : { + &quot;lat&quot; : 39.73915360, + &quot;lng&quot; : -104.98470340 + }, + &quot;resolution&quot; : 4.771975994110107 + } + ], + &quot;status&quot; : &quot;OK&quot; +} +</code></pre> +<p>从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 +resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。</p> +<h3 id="获取多点高程">获取多点高程</h3> +<p>也可以在一次网络请求中获取多个点的高程,多个位置之间用 <code>|</code> 分隔即可。例如:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&amp;key=YOUR_API_KEY +</code></pre><p>但一次请求中的位置不能超过512个。</p> +<h3 id="批量获取高程">批量获取高程</h3> +<p>Google Maps 提供了多种客户端以实现批量获取高程。 +此处以<a href="https://github.com/googlemaps/google-maps-services-python/" target="_blank" rel="noopener">Python客户端</a> 为例。</p> +<ol> +<li> +<p>安装 Google Map API 的 Python模块:</p> +<pre><code> $ pip install -U googlemaps +</code></pre> +</li> +<li> +<p>获取密钥</p> +</li> +<li> +<p>参考如下脚本批量获取高程数据</p> +</li> +</ol> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: utf-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">googlemaps</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="s2">&#34;&#34;&#34;Request elevation and return them with a list +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> Parameter +</span></span></span><span class="line"><span class="cl"><span class="s2"> ========= +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of longitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> yinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of latitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> maxnum : int +</span></span></span><span class="line"><span class="cl"><span class="s2"> point number of one request, maximum value is 512 +</span></span></span><span class="line"><span class="cl"><span class="s2"> &#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">xlist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">ylist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">points</span> <span class="o">=</span> <span class="p">[(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">ylist</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xlist</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">requestnum</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">points</span><span class="p">)</span> <span class="o">/</span> <span class="n">maxnum</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">npoints</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array_split</span><span class="p">(</span><span class="n">points</span><span class="p">,</span> <span class="n">requestnum</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">requestnum</span> <span class="o">&gt;</span> <span class="mi">2500</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Error: Request number exceed! Change grid or region.&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="p">[</span><span class="n">gmaps</span><span class="o">.</span><span class="n">elevation</span><span class="p">(</span><span class="n">locations</span><span class="o">=</span><span class="n">loc</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> <span class="k">for</span> <span class="n">loc</span> <span class="ow">in</span> <span class="n">npoints</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># 设置要下载高程数据的经度范围、纬度范围以及网格间隔</span> +</span></span><span class="line"><span class="cl"><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span> <span class="o">=</span> <span class="mf">120.000</span><span class="p">,</span> <span class="mf">129.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span> <span class="o">=</span> <span class="mf">30.000</span><span class="p">,</span> <span class="mf">30.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">gmaps</span> <span class="o">=</span> <span class="n">googlemaps</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s1">&#39;YOU_API_KEY&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># Obtain all elevations</span> +</span></span><span class="line"><span class="cl"><span class="c1"># 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度</span> +</span></span><span class="line"><span class="cl"><span class="n">elevations</span> <span class="o">=</span> <span class="n">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># output data with format `longitude latitude elevation resolution`</span> +</span></span><span class="line"><span class="cl"><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&#34;Elevations.dat&#34;</span><span class="p">,</span> <span class="s2">&#34;w&#34;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">loclist</span> <span class="ow">in</span> <span class="n">elevations</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">subloc</span> <span class="ow">in</span> <span class="n">loclist</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">outputstr</span> <span class="o">=</span> <span class="s2">&#34;</span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lng&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lat&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;elevation&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;resolution&#39;</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">f</span><span class="o">.</span><span class="n">writelines</span><span class="p">(</span><span class="n">outputstr</span><span class="p">)</span> +</span></span></code></pre></div> + + + + 使用sci-hub下载文献 + https://gmt-china.org/blog/sci-hub/ + Sat, 12 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/sci-hub/ + <p>科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, +因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, +可以下载到绝大多数外文期刊的文章甚至书籍。</p> +<h2 id="sci-hub-网站">sci-hub 网站</h2> +<p>sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, +用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:</p> +<p><a href="https://whereisscihub.now.sh/" target="_blank" rel="noopener">https://whereisscihub.now.sh/</a></p> +<h2 id="使用方法">使用方法</h2> +<p>下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。</p> +<p>要下载一篇文章,需要知道如下两个信息中的至少一个:</p> +<ol> +<li>文献的官方网址,比如 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a>, +可以通过 Google Scholar 等网站搜索得到</li> +<li>文献的DOI,比如 <code>10.1016/0031-9201(81)90046-7</code>,可以从文章的官方网站上找到, +现在大多数文章的参考文献也要求给出DOI信息</li> +</ol> +<blockquote> +<p>DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 +全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, +DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 <a href="https://dx.doi.org/" target="_blank" rel="noopener">https://dx.doi.org/</a> 后 +(例如 <a href="https://dx.doi.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://dx.doi.org/10.1016/0031-9201(81)90046-7</a> )即可跳转到该文章的真实网址。</p> +</blockquote> +<h3 id="到-sci-hub-网站下载">到 sci-hub 网站下载</h3> +<p>访问 sci-hub 网址,比如 <a href="https://sci.hubg.org/" target="_blank" rel="noopener">https://sci.hubg.org/</a> ,如下图所示:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub主页" srcset=" + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp 400w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp 760w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp" + width="760" + height="407" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。</p> +<h3 id="直接利用网址下载全文">直接利用网址下载全文</h3> +<p>打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 <code>sci-hub.org</code> 即可。</p> +<p>例如,这篇文章的网址是 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a> , +在域名的后面加上 sci-hub 的域名,变成: +<a href="https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467</a> +即可直接下载文章全文。</p> +<h3 id="直接利用doi下载全文">直接利用DOI下载全文</h3> +<p>已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 +<a href="https://sci-hub.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://sci-hub.org/10.1016/0031-9201(81)90046-7</a> 即可下载文章全文。</p> +<h2 id="注意事项">注意事项</h2> +<ul> +<li> +<p>当文献下载过频繁会要求用户输入验证码,如下图:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub验证码" srcset=" + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp 400w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp 760w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp" + width="760" + height="386" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +</li> +<li> +<p>DOI是如 <code>10.1016/0031-9201(81)90046-7</code> 这样的字符串,前面不要带 <code>doi:</code> 等其他字符。</p> +</li> +<li> +<p>sci-hub 不支持下载国内期刊的文章</p> +</li> +</ul> + + + + + diff --git "a/category/\347\247\221\347\240\224\345\267\245\345\205\267/page/1/index.html" "b/category/\347\247\221\347\240\224\345\267\245\345\205\267/page/1/index.html" new file mode 100644 index 00000000..6dd66b09 --- /dev/null +++ "b/category/\347\247\221\347\240\224\345\267\245\345\205\267/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/category/%E7%A7%91%E7%A0%94%E5%B7%A5%E5%85%B7/ + + + + + + diff --git a/css/vendor-bundle.min.c7b8d9abd591ba2253ea42747e3ac3f5.css b/css/vendor-bundle.min.c7b8d9abd591ba2253ea42747e3ac3f5.css new file mode 100644 index 00000000..ed0fc801 --- /dev/null +++ b/css/vendor-bundle.min.c7b8d9abd591ba2253ea42747e3ac3f5.css @@ -0,0 +1,3 @@ +/*!* Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com +* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) +* Copyright 2022 Fonticons, Inc.*/.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em)var(--fa-border-style,solid)var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media(prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1)translateY(0);transform:scale(1)translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0)}57%{-webkit-transform:scale(1)translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1)translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1)translateY(0);transform:scale(1)translateY(0)}to{-webkit-transform:scale(1)translateY(0);transform:scale(1)translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1)translateY(0);transform:scale(1)translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0)}57%{-webkit-transform:scale(1)translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1)translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1)translateY(0);transform:scale(1)translateY(0)}to{-webkit-transform:scale(1)translateY(0);transform:scale(1)translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-building:before{content:"\f1ad"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-highlighter:before{content:"\f591"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-crack:before{content:"\e3b1"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-medical:before{content:"\e3b2"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-joint:before{content:"\f595"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-rainbow:before{content:"\f75b"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield:before{content:"\f132"}.fa-shield-alt:before,.fa-shield-blank:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before,.fa-tram:before{content:"\f7da"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheelchair:before{content:"\f193"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"font awesome 6 brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2)format("woff2"),url(../webfonts/fa-brands-400.ttf)format("truetype")}.fa-brands,.fab{font-family:"font awesome 6 brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"font awesome 6 free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2)format("woff2"),url(../webfonts/fa-regular-400.ttf)format("truetype")}.fa-regular,.far{font-family:"font awesome 6 free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"font awesome 6 free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2)format("woff2"),url(../webfonts/fa-solid-900.ttf)format("truetype")}.fa-solid,.fas{font-family:"font awesome 6 free";font-weight:900}@font-face{font-family:"font awesome 5 brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2)format("woff2"),url(../webfonts/fa-brands-400.ttf)format("truetype")}@font-face{font-family:"font awesome 5 free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2)format("woff2"),url(../webfonts/fa-solid-900.ttf)format("truetype")}@font-face{font-family:"font awesome 5 free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2)format("woff2"),url(../webfonts/fa-regular-400.ttf)format("truetype")}@font-face{font-family:fontawesome;font-display:block;src:url(../webfonts/fa-solid-900.woff2)format("woff2"),url(../webfonts/fa-solid-900.ttf)format("truetype")}@font-face{font-family:fontawesome;font-display:block;src:url(../webfonts/fa-brands-400.woff2)format("woff2"),url(../webfonts/fa-brands-400.ttf)format("truetype")}@font-face{font-family:fontawesome;font-display:block;src:url(../webfonts/fa-regular-400.woff2)format("woff2"),url(../webfonts/fa-regular-400.ttf)format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:fontawesome;font-display:block;src:url(../webfonts/fa-v4compatibility.woff2)format("woff2"),url(../webfonts/fa-v4compatibility.ttf)format("truetype");unicode-range:U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F250,U+F252,U+F27A} \ No newline at end of file diff --git a/css/wowchemy.1052fab8b7700a3dc49ee23683097d66.css b/css/wowchemy.1052fab8b7700a3dc49ee23683097d66.css new file mode 100644 index 00000000..9b68b6b7 --- /dev/null +++ b/css/wowchemy.1052fab8b7700a3dc49ee23683097d66.css @@ -0,0 +1,4 @@ +/*! Wowchemy v5.5.0 | https://wowchemy.com/ */ +/*! Copyright 2016-present George Cushen (https://georgecushen.com/) */ +/*! License: https://github.com/wowchemy/wowchemy-hugo-themes/blob/main/LICENSE.md */ +:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#1565c0;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,liberation sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1565c0;text-decoration:none;background-color:transparent}a:hover{color:#0d417b;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:rgba(0,0,0,.54);text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:576px){.container-sm,.container{max-width:540px}}@media(min-width:768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width:992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width:1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1290px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-auto{flex:none;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media(min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-auto{flex:none;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media(min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-auto{flex:none;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media(min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-auto{flex:none;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media(min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-auto{flex:none;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,5%)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#bdd4ed}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#85afde}.table-hover .table-primary:hover{background-color:#a9c7e8}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a9c7e8}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#d6d8db}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>th,.table-success>td{background-color:#c3e6cb}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>th,.table-info>td{background-color:#bee5eb}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffeeba}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5c6cb}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark th,.table-dark td,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,5%)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media(max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media(max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media(max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media(max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#66a6ee;outline:0;box-shadow:0 0 0 .2rem rgba(21,101,192,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:rgba(0,0,0,.54)}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem)center;background-size:calc(.75em + .375rem)calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem)right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e")center right 1.75rem/calc(.75em + .375rem)calc(.75em + .375rem)no-repeat}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#28a745}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#28a745}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#28a745}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#28a745}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem)center;background-size:calc(.75em + .375rem)calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem)right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e")center right 1.75rem/calc(.75em + .375rem)calc(.75em + .375rem)no-repeat}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#dc3545}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#dc3545}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#dc3545}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:none;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(21,101,192,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#1565c0;border-color:#1565c0}.btn-primary:hover{color:#fff;background-color:#11539e;border-color:#104d92}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#11539e;border-color:#104d92;box-shadow:0 0 0 .2rem rgba(56,124,201,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#1565c0;border-color:#1565c0}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#104d92;border-color:#0f4787}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(56,124,201,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus,.btn-secondary.focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning:focus,.btn-warning.focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#1565c0;border-color:#1565c0}.btn-outline-primary:hover{color:#fff;background-color:#1565c0;border-color:#1565c0}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(21,101,192,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#1565c0;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#1565c0;border-color:#1565c0}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(21,101,192,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#1565c0;text-decoration:none}.btn-link:hover{color:#0d417b;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#6c757d;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=top],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#1565c0}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.form-control:not(:last-child),.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#1565c0;background-color:#1565c0}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(21,101,192,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#66a6ee}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#94c1f3;border-color:#94c1f3}.custom-control-input[disabled]~.custom-control-label,.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input[disabled]~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#1565c0;background-color:#1565c0}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(21,101,192,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(21,101,192,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(21,101,192,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(21,101,192,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#66a6ee;outline:0;box-shadow:0 0 0 .2rem rgba(21,101,192,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#66a6ee;box-shadow:0 0 0 .2rem rgba(21,101,192,.25)}.custom-file-input[disabled]~.custom-file-label,.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(21,101,192,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(21,101,192,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(21,101,192,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#1565c0;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#94c1f3}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#1565c0;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#94c1f3}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#1565c0;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#94c1f3}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#1565c0}.nav-fill>.nav-link,.nav-fill .nav-item{flex:auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.35rem;padding-bottom:.35rem;margin-right:1rem;font-size:1.2rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem 0;font-size:1.125rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media(max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media(min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media(max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media(min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media(max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media(min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media(max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media(min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#2b2b2b}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#2962ff}.navbar-light .navbar-nav .nav-link{color:#34495e}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:#2962ff}.navbar-light .navbar-toggler{color:#34495e;border-color:transparent}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%2334495e' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#34495e}.navbar-light .navbar-text a{color:#2962ff}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#2962ff}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,3%);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px)calc(.25rem - 1px)0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,3%);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px)calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media(min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media(min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media(min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#1565c0;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0d417b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(21,101,192,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#1565c0;border-color:#1565c0}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#1565c0}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#104d92}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(21,101,192,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:hover,a.badge-secondary:focus{color:#fff;background-color:#545b62}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#1e7e34}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#117a8b}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:hover,a.badge-warning:focus{color:#212529;background-color:#d39e00}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#bd2130}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{color:#212529;background-color:#dae0e5}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#1d2124}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert,.article-style aside{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#0b3564;background-color:#d0e0f2;border-color:#bdd4ed}.alert-primary hr{border-top-color:#a9c7e8}.alert-primary .alert-link{color:#061d36}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#1565c0;transition:width .6s ease}@media(prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#1565c0;border-color:#1565c0}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#0b3564;background-color:#bdd4ed}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#0b3564;background-color:#a9c7e8}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#0b3564;border-color:#0b3564}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,5%);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media(min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,liberation sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,liberation sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=top]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=top]>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=top]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=top]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=right]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=right]>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=right]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=right]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=bottom]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=bottom]>.arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=bottom]>.arrow::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=bottom]>.arrow::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=left]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=left]>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=left]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=left]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:6rem;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion:reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:4rem;height:4rem;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:6rem;margin-left:6rem;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:initial;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#1565c0!important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#104d92!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#1565c0!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media(min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media(min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media(min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media(min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714286%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media(min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media(min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media(min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media(min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media(min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media(min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media(min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media(min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media(min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media(min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media(min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media(min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media(min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media(min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media(min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media(min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#1565c0!important}a.text-primary:hover,a.text-primary:focus{color:#0d417b!important}.text-secondary{color:#6c757d!important}a.text-secondary:hover,a.text-secondary:focus{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:hover,a.text-success:focus{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:hover,a.text-info:focus{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:hover,a.text-warning:focus{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:hover,a.text-danger:focus{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:hover,a.text-light:focus{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:hover,a.text-dark:focus{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:rgba(0,0,0,.54)!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,*::before,*::after{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title)")"}pre{white-space:pre-wrap!important}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-family:roboto,sans-serif;font-size:16.17px;color:rgba(0,0,0,.8);line-height:1.65;scroll-padding-top:70px}@media(max-width:991.98px){html{scroll-padding-top:50px}}@media screen and (min-width:58em){html{font-size:21px}}body{font-family:inherit;font-size:1rem;line-height:inherit;color:inherit;background-color:#fff;padding-top:0;counter-reset:captions;overflow-x:hidden;margin-top:70px}@media(max-width:991.98px){body{margin-top:50px}}body.no-navbar{margin-top:0!important;scroll-padding-top:0!important}.page-wrapper{min-height:calc(100vh - 70px);display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:100%}@media(max-width:991.98px){.page-wrapper{min-height:calc(100vh - 50px)}}.page-wrapper.no-navbar{min-height:100vh}.page-header,.page-footer{flex-shrink:0}.page-body{flex-grow:1}.max-width-640{max-width:640px}.margin-auto{margin-left:auto;margin-right:auto}.center-text{text-align:center}p{margin-top:0;margin-bottom:1rem}p:last-child{margin-bottom:0}ul,ol,dl{margin-top:0;margin-bottom:1rem}li>p{margin-bottom:0}ul.task-list{list-style:none}ul.task-list li input[type=checkbox]{margin-right:.5rem}.emoji-list ul{list-style-type:none}.navbar-light{font-family:roboto,sans-serif;font-weight:400;line-height:1.25;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:montserrat,sans-serif;font-weight:400;margin-top:1rem;margin-bottom:.5rem;line-height:1.25;color:#313131;text-rendering:optimizeLegibility;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual}h1{font-size:2.25rem}h2{margin-top:1rem;font-size:1.5rem}h3{font-weight:700;margin-top:1.5rem;font-size:1.25rem}h4,h5,h6{font-weight:700;margin-top:1rem;font-size:1rem}a,h3.article-title a:hover{color:#1565c0;text-decoration:none;transition:color .6s ease}a:hover,a:focus{color:#1565c0}.dark a,.dark h3.article-title a:hover{color:#bbdefb}.dark a:not(.btn):hover,.dark a:not(.btn):focus{color:#bbdefb}pre,code{font-family:roboto mono,monospace}pre,code:not(.hljs){color:#c7254e;background-color:#f8f8f8}pre{margin:0 0 1rem;border-color:#f8f8f8;font-size:.7rem;border-radius:4px}pre code{white-space:pre;overflow-x:auto}hr{border:0;height:1px;background:#333;background-image:linear-gradient(to right,#ccc,#333,#ccc)}blockquote{padding:.5rem 1rem;margin:.8rem 0;color:#7a7a7a;border-left:.25rem solid #e5e5e5}blockquote p:last-child{margin-bottom:0}@media(min-width:30em){blockquote{padding-right:5rem;padding-left:1.25rem}}mark,.mark{color:inherit}.space-below{margin-bottom:50px}@media screen and (max-width:768px){.space-below{margin-bottom:10px}}.universal-wrapper{margin:0 auto;padding-right:1rem;padding-left:1rem;padding-top:.1rem;width:100%}@media only screen and (min-width:1001px){.universal-wrapper{width:1000px}}small,.small{font-size:.75em}.responsive-wrap iframe{max-width:100%}.btn{padding:.5rem;font-size:.8rem;line-height:.9;border-radius:.3rem}.btn-links .btn{padding:5px .5rem;line-height:1}.btn.btn-sm,.btn-group-sm>.btn{padding:5px .4rem;font-size:14px;border-radius:.2rem}.btn-page-header{margin:8px 8px 8px 0}.btn-toolbar .btn{font-size:.9rem;padding:10px 14px 9px;border:none}.btn-toolbar .btn:first-child{border-radius:6px 0 0 6px}.btn-toolbar .btn:last-child{border-radius:0 6px 6px 0}.btn-toolbar .btn.btn-primary:hover,.btn-toolbar .btn.btn-primary:focus{background-color:#217ee7!important}.btn-toolbar .btn.btn-primary:active,.btn-toolbar .btn.btn-primary.active{background-color:#104d92!important}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #217ee7}.article-style aside p,div.alert>div{position:relative;display:block;font-size:1rem;margin-left:2rem;margin-top:0;margin-bottom:0}div.alert div>*{margin-bottom:.5rem}div.alert div>:last-child{margin-bottom:0}.article-style aside p::before,div.alert>div:first-child::before{position:absolute;top:-.5rem;left:-2rem;font-size:1.5rem;color:#1976d2;font-family:'font awesome 5 free';font-weight:900;content:'\f05a';width:1.5rem;text-align:center}div.alert-warning>div:first-child::before{font-family:'font awesome 5 free';font-weight:900;color:#ff3860;content:'\f071'}.article-style aside a,div.alert a{color:currentColor;text-decoration:none;border-bottom:solid 1px}.article-style aside,.alert-note{color:#12537e;background-color:#f6fbfe;border-color:#1976d2}.alert-warning{color:#cd0930;background-color:#fff5f7;border-color:#ff3860}.article-container{max-width:760px;padding:0 20px;margin:0 auto}.page-subtitle{font-size:1.15rem;color:rgba(0,0,0,.54);margin-bottom:1rem}.dark .page-subtitle{color:rgba(255,255,255,.54)}.article-header{position:relative;clear:both}.article-banner{width:100%;height:auto}.featured-image-wrapper{position:relative;padding-left:0;padding-right:0}.featured-image{position:relative;width:100%;display:block;margin:0 auto}.article-header-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-size:.7em;background:#000;text-align:right;z-index:5;opacity:.65;border-radius:5px 0 0 0}@media(min-width:64em){.article-header-caption{padding:5px 10px}}.article-header-caption a{color:#fff;text-decoration:none}.article-title{font-size:1.75rem}.article-title a{color:#151515;transition:color .6s ease}.dark .text-muted{color:rgba(255,255,255,.54)!important}.article-style{overflow:hidden;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.article-style a{text-decoration:inherit}.article-style img,.article-style video{margin-left:auto;margin-right:auto;margin-top:2rem;margin-bottom:2rem;padding:0}.article-style td img,.article-style td video{margin-top:0;margin-bottom:0}.article-style figure{margin-top:2rem;margin-bottom:2rem}.article-style figure img{margin-top:0;margin-bottom:0}.dark .article-style a{text-decoration:inherit}.article-metadata{margin-bottom:15px;overflow:hidden;font-size:14px;letter-spacing:.03em;color:rgba(0,0,0,.54)}.article-metadata a{color:rgba(0,0,0,.54)}.article-metadata a:hover{color:#1565c0}.article-metadata .author-notes{cursor:help;padding-left:3px}.article-metadata .author-highlighted{font-weight:700}article .article-metadata{margin-bottom:20px}.dark .article-metadata{color:rgba(255,255,255,.54)}.stream-meta.article-metadata{margin-bottom:5px}.article-categories{white-space:nowrap}.middot-divider{padding-right:.45em;padding-left:.45em;font-size:15px}.middot-divider::after{content:'\00B7'}caption{text-align:center}.dark caption{color:rgba(255,255,255,.8)}.content-widget-hr{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid rgba(0,0,0,5%)}.dark .content-widget-hr{border-top:1px solid rgba(255,255,255,5%)}.article-tags{margin-top:1.2rem}#comments{padding-top:1rem}.article-widget{padding-top:1.2rem}.article-widget h3{margin-top:0}.dark .article-metadata a{color:rgba(255,255,255,.54)}.svg-icon{display:inline-flex;align-self:center;height:.9em;width:.9em}.svg-icon.svg-baseline{bottom:.1em;line-height:1;position:relative}.task-list input[type=checkbox]:checked{appearance:initial;width:1em;height:1em;border:none;background:initial;position:relative}.task-list input[type=checkbox]:not(:checked){width:.9em;height:.9em}.task-list input[type=checkbox]:checked::after{content:'✅'}img,video{height:auto;max-width:100%;display:block}audio{width:100%;margin-bottom:20px}video{width:100%;height:auto;max-height:400px}.img-responsive{margin:0 auto}.img-hover-zoom{overflow:hidden}.img-hover-zoom img{transition:transform .3s ease-in-out}.img-hover-zoom:hover img{transform:scale(1.1)}figure img{height:auto;max-width:100%}figure figcaption{margin-top:.75em;margin-bottom:1.65rem;line-height:1.4;font-size:.76rem;text-align:center}figure figcaption.numbered::before{font-weight:700;text-transform:uppercase;content:attr(data-pre)counter(captions)attr(data-post)}figure figcaption.numbered{counter-increment:captions}.dark .img-light,body:not(.dark) .img-dark{filter:invert(1)}svg{fill:currentColor}.medium-zoom-overlay,.medium-zoom-image--opened{z-index:1031}.gallery{margin:.5em -4px 1.5em;font-size:0}.gallery img{min-height:48px;min-width:48px}a[data-fancybox]{text-decoration:none;cursor:zoom-in}.gallery a[data-fancybox] img{height:250px;width:auto;max-width:inherit;display:inherit;margin:0;padding:4px;box-shadow:none;vertical-align:inherit}.fancybox-caption{font-size:1rem;line-height:1.5rem;text-align:center}table{overflow-x:scroll;margin-bottom:1rem;font-size:.8rem;overflow-wrap:normal;word-wrap:normal;word-break:normal}.dark .table{color:#fff}.badge-light{border:none;color:rgba(0,0,0,.68);background:rgba(0,0,0,5%);font-weight:400;border-radius:3px;padding:5px 10px;margin-right:8px;margin-bottom:8px}.article-tags>.badge-light:last-child{margin-right:0}.badge-light[href]:focus,.badge-light[href]:hover{background:rgba(0,0,0,.1)}a.badge:focus,a.badge:hover{color:rgba(0,0,0,.68)}.tag-cloud a{display:inline-block;position:relative;margin:8px 10px;word-wrap:break-word;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out}.tag-cloud a:active,.tag-cloud a:focus,.tag-cloud a:hover{color:#104d92;transform:scale(1.2)}.dark .tag-cloud a:active,.dark .tag-cloud a:focus,.dark .tag-cloud a:hover{color:#217ee7}.author-card .avatar{width:60px;height:60px}.author-card .card-title{margin-top:0;margin-bottom:15px;font-weight:600;color:rgba(0,0,0,.84)}.author-card .card-title a{color:rgba(0,0,0,.84)}.dark .author-card .card-title,.dark .author-card .card-title a{color:rgba(255,255,255,.84)}.author-card p{margin-bottom:5px}.author-card .card-subtitle{font-weight:300;font-size:.8rem;color:rgba(0,0,0,.54);margin-bottom:7px}.dark .author-card .card-subtitle{color:rgba(255,255,255,.54)}.author-card .card-text{color:rgba(0,0,0,.76);font-size:.8rem;margin-bottom:4px}.dark .author-card .card-text{color:rgba(255,255,255,.76)}.breadcrumb{font-size:14px;padding:0;background-color:transparent;border-radius:0;margin-bottom:0}.breadcrumb-item.active{color:rgba(0,0,0,.54)}.dark .breadcrumb-item.active{color:rgba(255,255,255,.54)}.card-simple{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,4%);border:1px solid rgba(0,0,0,9%);border-radius:3px;margin-top:20px;padding:15px 20px}.card-simple:first-of-type{margin-top:0}.card-simple p.read-more{margin:0}.dark .card-simple{background:#282a36;box-shadow:0 1px 4px rgba(0,0,0,4%);border:1px solid #44475a}a.summary-link{color:unset;text-decoration:none}.card{margin-bottom:1.5rem;overflow:hidden;text-overflow:ellipsis;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:all .2s ease-out}.card .card-image{display:block;position:relative;min-height:100px}.card .section-subheading{font-size:.9rem;font-weight:700;line-height:1.5;text-transform:uppercase}.card .section-subheading a{color:#000;border-bottom:solid 1px transparent}.card .section-subheading a:hover{color:#000;border-bottom:solid 1px #000;text-decoration:none}.card .card-text{padding:.75rem 1rem}.card .card-text p{color:rgba(0,0,0,.54);font-size:.75rem}.dark .card-text p{color:#f8f8f2}.card p:last-child{margin-bottom:0}.card .card-image.hover-overlay::before{display:block;position:absolute;left:0;top:0;width:100%;height:100%;background:#fff;content:' ';opacity:0;transition:all .2s ease-out}.card .card-image.hover-overlay::after{display:block;position:absolute;left:0;top:50%;width:100%;transform:translate(0,-50%);opacity:0;transition:all .2s ease-out;font-family:'font awesome 5 free';font-weight:900;content:'\f0c1';text-align:center;font-size:3rem;color:#666}.card:hover{box-shadow:0 8px 16px rgba(0,0,0,.2)}.card:hover .card-image.hover-overlay::before{opacity:.8}.card:hover .card-image.hover-overlay::after{opacity:.6}.modal-content{background:#fff}.dark .modal-content{background:#23252f}.modal-title{margin:0}.modal-content pre{margin:0}.modal-header{border:0;color:rgba(0,0,0,.8)}.modal-footer{border:0}#modal-error{color:red}.headroom{will-change:transform;transition:transform 200ms linear}.headroom--pinned{transform:translateY(0%)}.headroom--unpinned{transform:translateY(-100%)}.header--fixed{position:fixed;z-index:10;right:0;left:0;top:0}.dropdown-menu{background-color:#fff!important;color:#34495e!important;z-index:1032}.navbar{height:70px;background:#fff;box-shadow:0 .125rem .25rem rgba(0,0,0,.11);font-size:16.17px;padding:0 1rem}.navbar .nav-item{position:relative}@media(max-width:991.98px){.navbar{height:50px}.navbar .navbar-nav-scroll{width:100%;overflow:hidden}.navbar .navbar-nav-scroll .navbar-nav{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}.navbar .navbar-nav{display:flex}.navbar .navbar-nav .nav-link{color:rgba(52,73,94,.85)}.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link:hover,.navbar .navbar-nav .nav-link:focus{color:#34495e}.navbar .navbar-nav .nav-link.active{font-weight:700!important;color:#2962ff!important}.navbar .dropdown-menu{font-size:16.17px}.navbar .dropdown-item.active,.navbar .dropdown-item-active{font-weight:700;color:#2962ff!important}.dark .navbar{background:#282a36;box-shadow:0 .125rem .25rem rgba(255,255,255,.11)}.dark .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.85)}.dark .navbar .navbar-nav .nav-link.active,.dark .navbar .navbar-nav .nav-link:hover,.dark .navbar .navbar-nav .nav-link:focus{color:rgba(255,255,255,.8)}.dark .navbar .navbar-nav .nav-link.active{font-weight:700!important;color:rgba(255,255,255,.8)!important}.dark .navbar .dropdown-item.active,.dark .navbar .dropdown-item-active{color:rgba(255,255,255,.8)!important}.navbar-toggler{border:0!important;position:relative;z-index:1030}.dark .navbar-toggler{color:#fff}.navbar-toggler:focus,.navbar-toggler:active{outline:none!important;box-shadow:none!important}@media(max-width:991.98px){.i18n-dropdown .nav-link::after{content:none}}.i18n-dropdown .dropdown-menu,.theme-dropdown .dropdown-menu{position:absolute;right:0;left:auto}.navbar-brand{padding-top:5px;padding-bottom:5px;font-weight:700;position:relative;z-index:1030}.dark .navbar-brand{color:#fff}.navbar-brand img{width:auto;height:-moz-available;height:-webkit-fill-available;height:-webkit-stretch;height:stretch;max-height:60px;max-width:fit-content}#navbar-main .main-menu-item ul li .nav-link{color:#34495e}.dark #navbar-main .main-menu-item ul li .nav-link{color:#fff}@media(max-width:991.98px){.navbar-brand-mobile-wrapper{position:absolute;left:0;right:0}.navbar-brand{margin:0 auto}.navbar-brand img{max-height:40px}.navbar-toggler{border-color:transparent}#navbar-main .main-menu-item{text-align:left!important;padding-left:0}.navbar-collapse{z-index:1031!important;position:absolute;left:0;top:50px;width:100%;background-color:#fff;text-align:center!important}.dark .navbar-collapse{background-color:#282a36}#navbar-main .main-menu-item .nav-item{padding:10px 15px!important}#navbar-main .main-menu-item .nav-item .nav-link{padding:5px 15px!important}}ul.nav-icons{list-style-type:none;font-size:18px;padding:.5rem 0;margin:0}ul.nav-icons li{display:inline;padding-right:1rem}ul.nav-icons li:last-of-type{padding-right:0}ul.nav-icons li.nav-item a.nav-link{padding:0}.dark .dropdown-menu{background-color:#282a36!important;color:#fff!important}.dropdown-item{background-color:#fff!important;color:#34495e!important}.dark .dropdown-item{background-color:#282a36!important;color:#fff!important}.post-nav{margin-top:1rem;font-size:.8rem}.post-nav-item{hyphens:auto;word-wrap:break-word;padding:11px 0 12px;width:100%}.post-nav-item a{color:#2b2b2b;line-height:1.7;text-transform:none}.post-nav-item .meta-nav{color:#767676;font-weight:900;line-height:2;text-transform:uppercase}.dark .post-nav-item a{color:#ddd}.share-box{margin-top:.7rem}ul.share{display:flex;align-items:center;justify-content:center;flex-direction:row;flex-wrap:wrap;list-style:none;margin:0;padding:0}ul.share li{display:inline-flex;margin-right:8px}ul.share li:last-of-type{margin-right:0}ul.share li i{display:block;width:30px;height:30px;line-height:30px;font-size:22px;text-align:center;transition:all 150ms ease-in-out}ul.share li a{text-decoration:none!important;color:rgba(0,0,0,.84)}.dark ul.share li a{color:rgba(255,255,255,.84)}ul.share li:hover i{transform:scale(1.2)}.cta-group{--button-group-margin:0.75em;display:flex;flex-wrap:wrap;list-style:none;align-items:center;justify-content:left;margin-left:calc(-1 * var(--button-group-margin));margin-right:calc(-1 * var(--button-group-margin));padding:0}.cta-group-center{justify-content:center}.cta-group li{margin-bottom:1em;margin-left:var(--button-group-margin);margin-right:var(--button-group-margin)}details{margin-bottom:1rem}summary:focus{outline:none}details p{margin-left:.3rem;padding-left:.5rem;border-left:1px solid rgba(0,0,0,.8)}.dark details p{border-left:1px solid rgba(255,255,255,.8)}.docs-article-container{max-width:760px}.docs .body-footer{border-top:1px solid #e8e8e8;margin-top:30px;padding-top:10px;font-size:14px;color:#707070}.docs-content{order:1;position:relative}.docs-content>h2[id],.docs-content>h3[id],.docs-content>h4[id]{pointer-events:none}.docs-content>ol li,.docs-content>ul li{margin-bottom:.25rem}.docs-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,5%)}@media(max-width:767.98px){.docs-search{padding:.8rem 15px}}.docs-search .form-control:focus{border-color:#1565c0;box-shadow:0 0 0 3px #217ee7}.docs-sidebar{order:0;border-bottom:1px solid rgba(0,0,0,.1)}@media(min-width:768px){.docs-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports(position:-webkit-sticky) or (position:sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:50px;z-index:10;height:calc(100vh - 50px)}}}@media(min-width:1200px){.docs-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports(position:-webkit-sticky) or (position:sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:70px;z-index:10;height:calc(100vh - 70px)}}}@media(min-width:1200px){.docs-sidebar{flex:0 1 320px}}@media print{.docs-sidebar{display:none}}.docs-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:.8rem;color:rgba(0,0,0,.65)}.docs-sidebar .nav>li>a:hover{color:rgba(0,0,0,.85);text-decoration:none;background-color:transparent}.docs-sidebar .docs-toc-item.active a,.docs-sidebar .docs-toc-item a.active,.docs-sidebar .nav>.active:hover>a,.docs-sidebar .nav>.active>a{font-weight:700;color:#1565c0;background-color:transparent}.docs-toggle{line-height:1.5;font-size:1.2rem;color:#1565c0;background-color:transparent}.docs-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media(min-width:768px){@supports(position:-webkit-sticky) or (position:sticky){.docs-links{max-height:calc(100vh - 5rem - 70px);overflow-y:auto}}}@media(min-width:768px){.docs-links{display:block!important}}.docs-toc{order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports(position:-webkit-sticky) or (position:sticky){.docs-toc{position:-webkit-sticky;position:sticky;top:70px;height:calc(100vh - 70px);overflow-y:auto}}.docs-toc-link{display:block;padding:.25rem 1.5rem;font-weight:700;color:rgba(0,0,0,.65)}.docs-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.docs-toc-item.active{margin-bottom:1rem}.docs-toc-item.active:not(:first-child){margin-top:1rem}.docs-toc-item.active>.docs-toc-link{color:rgba(0,0,0,.85)}.docs-toc-item.active>.docs-toc-link:hover{background-color:transparent}.docs-sidenav{display:block}.docs-toc-title{color:#b5b5b5;font-size:.875rem;font-weight:600;padding-left:calc(1.5rem + 1px)}#TableOfContents{padding-left:0;border-left:1px solid #eee}#TableOfContents ul,ul.toc-top{padding-left:0}#TableOfContents ul ul{padding-left:.8rem}#TableOfContents li{display:block;margin-bottom:8px}#TableOfContents li a,.toc-top li a{display:block;padding:0 1.5rem;color:rgba(0,0,0,.65);line-height:1.75;font-size:16px}.dark #TableOfContents li a,.dark .toc-top li a{color:rgba(255,255,255,.65)}#TableOfContents li a:hover,.toc-top li a:hover{color:#1565c0;text-decoration:none}#TableOfContents li a.active{color:#1565c0;font-weight:700}.anchorjs-link{font-weight:400;color:#104d92;transition:color .16s linear}.anchorjs-link:hover{color:#1565c0;text-decoration:none}footer{margin:4rem 0 0;width:100%}footer p{font-size:.75rem;text-align:center}@media(max-width:767.98px){footer p{font-size:12px}}footer .powered-by{font-size:.67rem}@media(max-width:767.98px){footer .powered-by{font-size:12px}}.site-footer{color:rgba(0,0,0,.54)}.dark .site-footer,.dark .docs .body-footer{color:rgba(255,255,255,.54)}.footer-license-icons{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;height:auto;width:auto;text-decoration:none}.footer-license-icons i{display:inline-flex;margin-right:8px;height:22px;vertical-align:text-bottom}.view-list-item{margin-bottom:1rem}.pub-icon{color:rgba(0,0,0,.54);font-size:.81em;padding-right:6px}.view-list-item .article-metadata{margin-bottom:0}.pub-list-item .pub-abstract{font-size:1rem}.pub-list-item .btn-links{padding-top:10px}.media.stream-item:not(:last-child){margin-bottom:2rem}.card-simple .article-title,.media.stream-item .article-title{font-size:1.2rem}.card-simple .article-style,.media.stream-item .article-style{margin-top:2px;font-size:.8rem}.media.stream-item .stream-meta{margin-top:12px}.media.stream-item img{max-width:150px;height:auto;object-fit:cover}@media screen and (max-width:768px){.media.stream-item img{max-width:80px}}.stream-meta.article-metadata .article-metadata{margin-bottom:0}.pub-banner{max-width:100%;height:auto;margin-left:auto;margin-right:auto}.pub-row-heading{font-weight:700}#container-publications{display:block;position:relative;overflow:hidden}.li-cite-author{font-size:1em;color:inherit}.li-cite-author a{color:inherit}.dark .li-cite-author a{color:#f8f8f2}html[dir=rtl] body{text-align:right}.search-modal{transform:scale(0);-webkit-transform:scale(0);background-color:#fff;bottom:0;left:0;right:0;top:0;overflow:scroll;position:fixed;visibility:hidden;z-index:-99}.dark .search-modal{background-color:#23252f}.search-modal>.container{padding-top:70px}@media screen and (max-width:1200px){.search-modal>.container{padding-top:50px}}.search-header{position:-webkit-sticky;position:sticky;top:0;background-color:#fff;padding-top:2rem;padding-bottom:1rem}@media(max-width:991.98px){.search-header{padding-top:0}}.dark .search-header{background-color:#23252f}.search-header h1{margin:0;line-height:1}.col-search-close{text-align:right}.search-header .col-search-close i{font-size:2rem;line-height:1}#search-box{position:relative;margin-bottom:.5rem}#search-box::before{font-family:'font awesome 5 free';font-weight:900;content:'\f002';font-size:1rem;opacity:.5;line-height:1rem;position:absolute;left:.7rem;top:.6rem;overflow-x:hidden}.ais-Hits-item,.ais-InfiniteHits-item{background:unset;box-shadow:unset;padding:unset}.ais-SearchBox-form::before{all:unset;height:1rem;left:1rem;margin-top:-.5rem;position:absolute;top:50%;width:1rem;font-family:'font awesome 5 free';font-weight:900;content:'\f002';font-size:100%;opacity:.7;line-height:1}.dark #search-query{background-color:#23252f}#search-box #search-query{border:1px solid #dedede;border-radius:1rem;padding:1rem 1rem 1rem 2rem;width:250px;line-height:1rem;height:1rem;font-size:.8rem}.form-control:focus{border-color:#1565c0;box-shadow:0 0 0 .2rem #217ee7}.search-hit em{font-style:normal;background-color:#ffe0b2;color:#e65100;border-bottom:1px solid #e65100}.search-hit-type{margin-bottom:0!important;text-transform:capitalize}.search-hit-description{font-size:.7rem}#search-hits button[disabled]{display:none}.sidebar-search{place-self:center start;display:flex;align-items:center}.sidebar-search:hover{color:rgba(0,0,0,.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.dark .sidebar-search:hover{color:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(255,255,255,.9)}.sidebar-search-text{flex-grow:1;text-align:left;overflow:hidden;font-size:.8rem}.sidebar-search-shortcut{font-family:Arial,helvetica neue,Helvetica,sans-serif;box-shadow:0 1px 1px rgba(12,13,14,.15),inset 0 1px #fff;flex-shrink:0;padding:1px 12px;margin:0 0 0 10px;color:rgba(0,0,0,.6);font-size:1.2rem;letter-spacing:1px;background:#e4e6e8;border-radius:5px;border:1px solid #9fa6ad;line-height:1.2}#search-common-queries ul{margin-left:0;padding-left:1.6em}#search-common-queries li{line-height:1}#search-common-queries li a{color:inherit}.dark #search-common-queries li a{color:#f8f8f2}.dark .ais-search-box--input{background-color:#23252f}.searching{overflow:hidden}.searching .search-modal{transform:scale(1);-webkit-transform:scale(1);visibility:visible;z-index:1031}.searching #search-box #search-query{width:100%}.home-section{background:#fff;position:relative;padding:110px 0;z-index:0}.home-section.fullscreen,.fullscreen{min-height:calc(100vh - 70px)}@media(max-width:991.98px){.home-section.fullscreen,.fullscreen{min-height:calc(100vh - 50px)}}.no-navbar .home-section.fullscreen,.no-navbar .fullscreen{min-height:100vh}.home-section.light,.home-section.light h1{color:#000}.home-section.light a{color:#1565c0}.home-section.dark a{color:#bbdefb}.home-section.dark,.home-section.dark h1,.home-section.dark h2,.home-section.dark h3,.home-section.dark a:not(.btn){color:#fff}.home-section.dark a:not(.btn):not(.hero-cta-alt){text-decoration:underline}.home-section.dark .alert a,.home-section.dark .article-style aside a,.article-style .home-section.dark aside a{color:inherit!important;text-decoration:inherit!important}.home-section-bg{position:absolute;top:0;left:0;height:100%;width:100%;z-index:-1}.home-section-bg.bg-image{background-position:50%;background-repeat:no-repeat;background-size:cover}.bg-video{position:absolute;top:0;max-height:initial}.bg-video.flip{transform:rotateY(180deg)}.parallax{background-attachment:fixed}@media(max-width:991.98px){.parallax{background-attachment:scroll}}.home-section:first-of-type{padding-top:50px}.home-section:nth-of-type(even){background:#f7f7f7}.dark .home-section{background:#272935}.dark .home-section:nth-of-type(even){background:#23252f}@media screen and (max-width:768px){.home-section{padding:60px 0}.home-section:first-of-type{padding-top:40px}}.section-heading h1{margin:0 0 10px}.section-subheading{font-size:1.25rem;font-family:montserrat,sans-serif;font-weight:700;margin-top:1rem;margin-bottom:.5rem}.section-heading p{font-weight:400;font-size:1.1rem;color:rgba(0,0,0,.54)}.dark .section-heading p{color:#9e9e9e}.see-all{margin-top:2rem;text-transform:uppercase}.dark .alert pre,.dark .article-style aside pre,.article-style .dark aside pre,.dark .alert code,.dark .article-style aside code,.article-style .dark aside code{color:initial;background-color:initial}.home-section.wg-slider{padding:0;animation:none;animation-delay:unset}.carousel-inner .wg-hero{animation:none;clear:none}.talk-metadata{color:#4b4f56;font-size:.8rem}.card.course{margin-bottom:1rem}.card.course:last-of-type{margin-bottom:0}.course .card-subtitle a{border-bottom:solid 1px transparent}.course .card-subtitle a:hover{border-bottom:solid 1px;text-decoration:none}#profile{text-align:center;padding:30px 10px;position:relative}.avatar{width:270px;height:270px;margin:0 auto;object-fit:cover}@media(max-width:767.98px){.wg-about .avatar{width:200px;height:200px}}.avatar-circle{border-radius:50%}.avatar-square{border-radius:3px}.portrait-title h2{font-size:1.75em;font-weight:300;color:#000;margin:20px 0 10px}.portrait-title h3{font-size:1rem;font-weight:300;color:rgba(0,0,0,.54);margin:0 0 10px}ul.network-icon{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;padding:0;margin:0}#profile .network-icon{margin-top:30px}.network-icon li{margin-right:10px}.network-icon li:last-of-type{margin-right:0}.network-icon li:hover{transform:scale(1.2)}.big-icon{font-size:2rem}ul.ul-interests li{font-size:.9rem}ul.ul-edu{list-style:none}ul.ul-edu li{position:relative;padding:0 15px 4px 3px}ul.ul-edu li .description p{margin:0}ul.ul-edu li .description p.course{font-size:.9rem}ul.ul-edu li .description p.institution{font-size:.75rem;color:rgba(0,0,0,.6)}.avatar-wrapper{position:relative;width:150px;height:150px;margin-left:auto;margin-right:auto}.avatar-wrapper .avatar-emoji{position:absolute;width:40px;height:40px;line-height:40px;border-radius:100%;bottom:0;right:0;text-align:center;font-size:20px;background-color:#fff;color:#000;box-shadow:0 10px 20px rgba(0,0,0,4%),0 2px 6px rgba(0,0,0,4%),0 0 1px rgba(0,0,0,4%)}.dark .avatar-emoji{background-color:#000;box-shadow:0 10px 20px rgba(0,0,0,4%),0 2px 6px rgba(0,0,0,4%),0 0 1px rgba(255,255,255,.96)}.wg-contact .fa-ul{margin-left:3.14285714rem}.wg-contact .fa-li{position:absolute;left:-3.14285714rem;width:2rem;top:.14285714em;text-align:center}.wg-contact li{padding-top:.8rem;margin-bottom:.3rem}.wg-contact li:last-of-type{margin-bottom:0}#map{height:350px;width:100%}#map a{color:initial}.exp-title{text-transform:none!important}.exp-company{font-weight:400!important;text-transform:none!important}.exp-meta{font-size:.8rem}.experience .card-text,.experience .card-text p{color:#000!important;font-size:.75rem!important}.dark .experience .text-muted{color:rgba(255,255,255,.8)!important}.dark .experience .card-text,.dark .experience .card-text p{color:#f8f8f2!important}.card .card-text p+ul{margin-top:-1rem;margin-bottom:0}.experience .m-2 .border,.experience .col.border-right{border-color:#1565c0!important}.experience .m-2 .border.exp-fill{background-color:#1565c0!important}.featurette{font-size:.8rem;line-height:1.5;color:#555;text-align:center}.featurette .section-subheading{margin-top:0;margin-bottom:5px;font-weight:400;color:#333}.dark .featurette,.dark .featurette .section-subheading{color:#fff}.featurette-icon{display:block;width:100%;color:#1565c0;font-size:3rem;text-align:center}.wg-hero{padding:3em 0}.hero-title{font-size:2.7rem;margin-top:0;line-height:1}.hero-lead{max-width:768px;font-size:1.35rem}.wg-hero.dark .hero-title,.wg-hero.dark .hero-lead,.wg-hero.dark .hero-cta-alt,.wg-hero.dark .hero-note>*{color:#fff}.wg-hero.light a.btn{color:#fff}.wg-hero.dark a:not(.wg-hero .btn){color:#fff}.wg-hero .hero-lead a{text-decoration:underline}.wg-hero .cta-btns{margin-bottom:16px}.wg-hero .btn{padding:.6em 2.1em}.wg-hero.dark .btn{color:#104d92}a.hero-cta-alt{display:inline-block;position:relative;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out;font-size:1.1rem}a.hero-cta-alt:active,a.hero-cta-alt:focus,a.hero-cta-alt:hover{transform:scale(1.1)}.wg-hero .btn-lg,.wg-hero .btn-group-lg>.btn{font-size:1.1rem}.wg-hero .hero-note{font-size:.8rem}.hero-media{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.people-widget{font-size:.8rem;text-align:center}.people-widget .portrait-title h2{font-size:1rem}.people-widget .portrait-title h3{font-size:.7rem}.people-widget .avatar{width:80%;max-width:150px;height:auto}@media(min-width:576px){.people-widget .col-sm-auto{width:30%}}@media(min-width:992px){.people-widget .col-sm-auto{width:20%}}.project-widget-simple li{margin-bottom:1rem}.project-widget-simple li:last-of-type{margin-bottom:0}.project-widget-simple .project-title{margin-bottom:6px}.project-widget-simple .project-summary{font-size:.9rem;margin-bottom:.4rem}.projects-container{display:block;position:relative;overflow:hidden}.project-toolbar{margin-bottom:2rem}.project-card{position:relative;width:calc( 33.3% - 13.3px)}@media screen and (max-width:1199px){.project-card{width:calc( 50% - 10px)}}@media screen and (max-width:768px){.project-card{width:100%}}.project-item{margin-bottom:1.5rem}.project-card.project-item{margin:0 0 20px}.project-card .card{margin:0}.project-showcase .project-item{margin-bottom:3rem}.project-item:last-of-type{margin-bottom:0}.isotope-item{z-index:2}.isotope-item:hover{z-index:3}.dark .article-title a{color:#fff}.dark .pagination li>a,.pagination li>span{background-color:#282a36;border:1px solid #ddd}body.dark,.dark .docs-toc-link,.dark .modal button.close,.dark input{color:#f8f8f2;background:#23252f}.dark .form-control{color:#f8f8f2;background-color:#44475a}.dark .form-control::placeholder{color:#fff;opacity:1}.dark .form-control:focus{background-color:#44475a;border-color:#1565c0;box-shadow:0 0 0 .2rem #104d92}.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#fff}.dark pre,.dark code:not(.hljs){color:#8be9fd;background-color:#44475a}.dark pre{border-color:#44475a}.dark mark,.dark .mark{background:rgba(233,231,245,.2)}.dark #MathJax_Zoom{background-color:#44475a!important}.dark table table{background-color:#282a36}.dark table>tbody>tr:nth-child(odd)>td,.dark table>tbody>tr:nth-child(odd)>th{background-color:#323440}.dark table>tbody>tr:hover>td,.dark table>tbody>tr:hover>th{background-color:#3c3e4a}.dark .portrait-title h2{color:#fff}.dark .portrait-title h3{color:rgba(255,255,255,.54)}.dark ul.ul-edu li .description p.institution{color:rgba(255,255,255,.6)}.dark .pub-icon{color:rgba(255,255,255,.54)}.dark .talk-metadata{color:rgba(255,255,255,.54)}.dark .card{background:#343a40}.dark .card .section-subheading a{color:#1565c0;border-bottom:solid 1px transparent}.dark .card .card-image.hover-overlay::before{background:#666}.dark .card .card-image.hover-overlay::after{color:#fff}.dark select{background:#282a36;color:#f8f8f2}.dark .badge-light{color:rgba(255,255,255,.68);background:rgba(255,255,255,.2)}.dark .badge-light[href]:focus,.dark .badge-light[href]:hover{background:rgba(255,255,255,.3)}.dark a.badge:focus,.dark a.badge:hover{color:rgba(255,255,255,.68)}.dark .btn-primary,.dark .btn.btn-primary.active{color:initial}.dark .docs-sidebar .nav>li:not(.active)>a{color:#f8f8f2;background:#23252f}div.mermaid{width:100%;text-align:center;margin-bottom:1rem}div.chart{max-width:100%;margin-left:auto;margin-right:auto;margin-bottom:1rem;overflow-x:auto} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..bb8663a0 --- /dev/null +++ b/index.html @@ -0,0 +1,2153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + + +
+
+ + + + + +

欢迎访问 GMT 中文社区

+

社区目标

+
    +
  • 组织社区成员协同维护 GMT 中文手册
  • +
  • 为 GMT 中文用户提供优质的 GMT 学习资源
  • +
  • 开展线下培训与聚餐等活动
  • +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + +
+

下载

+ +
+ + + + + + + + +
+
+
+
+

GMT v6.4.0: +32 位 | +64 位 +
+Ghostscript 9.56.1: +32 位 | +64 位 +

+
+
+
+

GMT 源码: +v6.4.0 +
+GSHHG 数据: +v2.3.7 +
+DCW 数据: +v2.1.1

+
+
+
+

GMT v6.4.0 安装包: +Intel | +ARM

+
+
+
+

老版本的源码和安装包可以从 GMT 科大镜像 +以及其子目录 binlegacy 下获取。

+ +
+ + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + +
+

中文手册

+ +
+ + + + + + + + +
+
+
+

在线阅读

+ +
+
+

PDF 下载

+ +
+
+ +
+ + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + +
+

最新博文

+

查看全部博文

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT脚本执行利器——VS Code +
+ + + +
+ Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 2021版1:100万全国标准基础地理数据!你值得拥有 +
+ + + +
+

本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。

+
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT5在Windows下提示无法创建用户目录的解决办法 +
+ + + +
+ 如何解决“无法创建用户目录”的问题? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT 中文社区第三次线下聚餐 +
+ + + +
+ 2017年10月,GMT中文社区在北京举行了第三个线下聚餐。 +
+
+ + + + + + +
+
+ + + + + GMT 中文社区第三次线下聚餐 + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ 利用 Google Maps 获取超高精度高程数据 +
+ + + +
+ 如何获得米级精度的高程数据? +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + +
+

联系我们

+ +
+ + + + + + + + +
+

GMT 中文社区有一群志愿者共同维护, +欢迎更多的 GMT 用户加入维护者的行列。

+

社区建议及投稿方式:

+ +
+
+

GMT 中文社区 QQ 群【入群前请先阅读入群须知!】:

+
    +
  • 一群:218905582
  • +
  • 二群:791856541
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + +
+ + +
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index.json b/index.json new file mode 100644 index 00000000..fdce396a --- /dev/null +++ b/index.json @@ -0,0 +1 @@ +[{"authors":["刘珠妹","赵志远"],"categories":["GMT技巧"],"content":"Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。\n注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。\nvscode安装 vscode下载地址为:官网\n安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。\n 安装完成之后有三种打开vscode的方式:\n 开始菜单中,直接找到Visual Studio Code应用程序打开。 直接在对应脚本或工作文件夹点击右键,选择“通过Code打开(Open with Code)”。 Ctrl+R打开运行窗口,输入code (前提是重启后,vscode已加入PATH路径)。 插件安装 vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:\n Code Runner 支持代码一键运行 vscode-pdf pdf预览插件 插件安装方式:打开Extensions扩展插件菜单,搜索对应插件,点击安装。安装成功之后,Install图标将变为齿轮,可点击该齿轮,修改插件属性。已安装启用的插件都可在Extension中查看设置。\n 在 Extensions 菜单中,点击 Code Runner 插件的齿轮图标,弹出菜单中选择“Extension Settings”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。\n vscode执行GMT脚本过程 GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:\n 在vscode中的Explore资源管理器菜单,选择“打开文件夹“: 或者,在文件夹上右键,选择“通过Code打开”:\n 含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, 再选择“重新打开编码(Reopen with Encoding)”,选择中文简体GB2312编码。\n 执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。\n 若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:\n 请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。\n如果你运行的是 bash 脚本,则必须在 gmt begin 之前添加一行 export GMT_SESSION_NAME=$$ ,否则脚本运行将出现错误。 详情请参阅GMT中文手册的begin模块说明页面\n 为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:\n 我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。\n","date":1582070400,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1582070400,"objectID":"de4017d6f83166687c87047225ee5463","permalink":"https://gmt-china.org/blog/vscode-usage/","publishdate":"2020-02-19T00:00:00Z","relpermalink":"/blog/vscode-usage/","section":"blog","summary":"Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且","tags":["Windows","Linux","Mac"],"title":"GMT脚本执行利器——VS Code","type":"post"},{"authors":["eyou","陈箫翰"],"categories":["地学数据"],"content":"本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。\n具体包括:\n 国家标准1:100万(非涉密)基础地理数据的申请、下载 数据集内容简介 数据集要素合并、提取及格式转换 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 《地图管理条例》有关规定依法履行地图审核程序。 数据概况 国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:\n 共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。 包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。 数据更多介绍可访问全国地理信息资源目录服务系统。\n数据获取 进入全国地理信息资源目录服务系统,点右上角“注册”。已注册用户直接登陆。 在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。 该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。 结算,填写订单中的个人信息,验证手机号,下载数据。 **注:**若未提示验证手机,换个firefox浏览器试试。 数据集内容简介 该数据集包括5类12个要素集,如下图所示:\n 全国基础地理数据库数据集 每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:\nBOUL 中国及邻区各级行政界限(线)图层\n 该数据集包括各级行政区界线,以GB码进行区分:\n 行政区界类型 GB码 海岸线 250200 水系交汇处 260100 外国地区国界线 610200 国界线(已定) 620201 国界线(未定) 620202 省级界线 630200 特别行政区界 630400 地、市、州级行政区界 640200 县级行政区界 650200 特殊地区界限 670202 其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。\n此外,常用的还有 AGNP 各级行政地名和城乡居民地坐标(点)图层\n行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:\n 行政地名点类型 CLASS类别 国名 AA 省(直辖市、自治区、特别行政区)行政地名 AB 自治州、盟、地区行政地名 AC 地级市行政地名 AD 县级市行政地名 AE 县(自治县、旗、自治旗、地级市市辖区)级市行政地名 AF 县辖区及县级行政区域的派出机构地名 AG 街道办事处地名 AH 镇行政地名 AI 乡行政地名 AJ 建制村地名 AK 城镇区片、小区名 BA 自然村、屯、片村、村民小组名 BB 牧点、渔点、棚房名 BC 其它 BD 党政机关、党派团体名 CA 企事业单位名 CB 农、林、牧、渔场 CC 数据处理 从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:\n 合并77个gdb文件中的同类要素 提取某类要素中的某个等级数据 转为gmt识别的文本格式 gdb数据库文件合并 采用本社区一贯推荐的GDAL/ORG库将分幅的gdb数据进行批量合并。 首先解压所有下载的压缩包,得到以.gdb结尾的目录。目录名类似H51.gdb、I49.gdb等。 然后在这些目录的上级目录执行以下脚本:\nLinux系统: #!/bin/bash file=\u0026#34;./final\u0026#34; for i in $(ls -d *.gdb) do if [ ! -d \u0026#34;$file\u0026#34; ] then echo \u0026#34;creating final filefolder\u0026#34; ogr2ogr -f \u0026#39;ESRI Shapefile\u0026#39; $file $i -lco encoding=UTF-8 else echo \u0026#34;merging……\u0026#34; ogr2ogr -f \u0026#39;ESRI Shapefile\u0026#39; $file $i -update -append fi done \nWindows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged REM 编码为UTF-8以正确显示属性字段中的中文 ogr2ogr -f \u0026#34;ESRI Shapefile\u0026#34; -lco encoding=UTF-8 Merged A49.gdb REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。 for /f %%i in (\u0026#39;dir /b \u0026#34;*.gdb\u0026#34;\u0026#39;) do ( ogr2ogr -f \u0026#34;ESRI Shapefile\u0026#34; -update -append Merged %%i ) pause \n若安装有python环境,还可选择ogrmerge.py工具进行批量的格式转换和合并,详见ogrmerge使用手册。\n该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。\n查询GB代码与CLASS类别 使用ogrinfo可以查询shp文件内包含哪些要素。例如以下命令查询BOUL.shp中包含的GB代码:\nogrinfo -sql \u0026#34;SELECT distinct GB FROM BOUL\u0026#34; BOUL.shp 而以下命令则查询AGNP.shp中包含的CLASS类别:\nogrinfo -sql \u0026#34;SELECT distinct CLASS FROM AGNP\u0026#34; AGNP.shp 提取某类要素 由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用ogr2ogr工具提供的sql查询选项进行提取。\n例如:\n行政区划BOUL图层中GB代码620201、620202、250200分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:\nogr2ogr -f GMT -where \u0026#34;GB=620201 or GB=620202 or GB=250200\u0026#34; BOUL_sub.gmt BOUL.shp 最后GMT绘图如下:\ngmt begin ChinaMap gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i gmt end show 绘图结果:\n 如果想要提取行政地名点AGNP图层中的建制村信息(对应CLASS为AK),则使用:\nogr2ogr -f GMT -where \u0026#34;CLASS=\u0026#39;AK\u0026#39;\u0026#34; AGNP.gmt AGNP.shp 注意因为CLASS类别为字符串,所以此处AK需要加上引号。GB代码为整型数因而不需要加引号。\n最后转换成的GMT格式数据如下:\n... # @NCLASS|NAME|PINYIN|GNID|XZNAME # @Tstring|string|string|string|string # FEATURE_DATA # @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡 121.68517089 29.388652295 # @DAK|坝头村|Batoucun|331022000000|亭旁镇 121.310746425 29.0109724900001 # @DAK|白岩村|Baiyancun|331082111028|尤溪镇 120.971417165 28.7226002200001 # @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道 121.257111875 28.8522451100001 ... 以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:\ngmt begin AGNP jpg gmt set PS_CHAR_ENCODING Standard+ gmt basemap -R120/121/28/29 -JM10c -Baf gmt grdimage @earth_relief_15s -Cgeo gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt chcp 936 gmt convert AGNP.gmt -a2=\u0026#34;NAME\u0026#34; | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite gmt end 绘图结果:\n ","date":1523750400,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1662595200,"objectID":"5dfd698cfa071373ad9413e67603621c","permalink":"https://gmt-china.org/blog/national-geographic-database/","publishdate":"2022-09-08T00:00:00Z","relpermalink":"/blog/national-geographic-database/","section":"blog","summary":"本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。\n","tags":null,"title":"2021版1:100万全国标准基础地理数据!你值得拥有","type":"post"},{"authors":["赵志远"],"categories":["GMT技巧"],"content":"GMT5的某些版本(\u0026lt;5.4.4)在某些特定的Windows下会出现如下警告信息:\ngmt: Unable to create GMT User directory : /Users/用户名/.gmt gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled. 这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 在于,当前系统没有定义环境变量 HOME,进而导致GMT无法知道当前计算机的主目录的 具体位置。\n虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 解决办法是:\n1、打开 “我的电脑”-\u0026gt;“属性”-\u0026gt;“高级系统设置”-\u0026gt;“环境变量” 2、新建 “系统变量” 变量名: HOME 变量值: C:\\Users\\用户名 重新运行GMT检查问题是否得到解决,可能需要重启计算机。\n经测试,HOME 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, 执行脚本后会生成 %HOME%/.gmt/cache 空文件夹。\n","date":1509062400,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1509062400,"objectID":"2bb624a711e4669fc7c5dea2493aae5f","permalink":"https://gmt-china.org/blog/user-directory-warning/","publishdate":"2017-10-27T00:00:00Z","relpermalink":"/blog/user-directory-warning/","section":"blog","summary":"如何解决“无法创建用户目录”的问题?","tags":["Windows"],"title":"GMT5在Windows下提示无法创建用户目录的解决办法","type":"post"},{"authors":["王亮","seisman"],"categories":["新闻动态"],"content":"金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。\n2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。\n在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, 除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, 桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。\n希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 更密切的联络,在科研道路上相互交流、积极互助。\n科研道路上,知己天涯若比邻,期待下次再聚~\n 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) ","date":1508198400,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1508198400,"objectID":"3134788e2f98923af755c303b2f41995","permalink":"https://gmt-china.org/blog/gud-20171017/","publishdate":"2017-10-17T00:00:00Z","relpermalink":"/blog/gud-20171017/","section":"blog","summary":"2017年10月,GMT中文社区在北京举行了第三个线下聚餐。","tags":["聚餐"],"title":"GMT 中文社区第三次线下聚餐","type":"post"},{"authors":["SeisPider"],"categories":["科研工具"],"content":"在绘制超小区域的地形图时,常需要超高精度的高程数据。\n目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 可以通过 Google Maps Elevation API 获取米级精度的数据。\n数据简介 Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 置(此类位置返回负值)。\n官方文档:\n 入门指南 开发人员指南 获取密钥 API KEY 想要从Google Maps中获取地形数据,首先需要一个密钥。 可以从 get API key 页面开始申请秘钥(需要提供信用卡等信息)。\n限额说明:\n 每个用户最多可能只能申请10个免费密钥 每个密钥每天2500次免费请求 每次请求最多512个位置 每秒最多50次请求 使用说明 获取单点高程 通过简单的网络请求即可获取单点的高程:\nhttps://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034\u0026amp;key=YOUR_API_KEY 其中:\n locations=39.7391536,-104.9847034 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔; key=YOU_API_KEY 指定了用户密钥,用户需要将自己申请的密钥替换 YOU_API_KEY 将上面的链接复制到浏览器中,即可得到返回值为::\n{ \u0026#34;results\u0026#34; : [ { \u0026#34;elevation\u0026#34; : 1608.637939453125, \u0026#34;location\u0026#34; : { \u0026#34;lat\u0026#34; : 39.73915360, \u0026#34;lng\u0026#34; : -104.98470340 }, \u0026#34;resolution\u0026#34; : 4.771975994110107 } ], \u0026#34;status\u0026#34; : \u0026#34;OK\u0026#34; } 从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。\n获取多点高程 也可以在一次网络请求中获取多个点的高程,多个位置之间用 | 分隔即可。例如:\nhttps://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667\u0026amp;key=YOUR_API_KEY 但一次请求中的位置不能超过512个。\n批量获取高程 Google Maps 提供了多种客户端以实现批量获取高程。 此处以Python客户端 为例。\n 安装 Google Map API 的 Python模块:\n $ pip install -U googlemaps 获取密钥\n 参考如下脚本批量获取高程数据\n #!/usr/bin/env python # -*- coding: utf-8 -*- import googlemaps import numpy as np def request_elevation(xmin, xmax, xinc, ymin, ymax, yinc, maxnum=512): \u0026#34;\u0026#34;\u0026#34;Request elevation and return them with a list Parameter ========= xmin : float minimum longitude, unit is degree xmax : float maximum longitude, unit is degree xinc : float increment of longitude ymin : float minimum latitude, unit is degree ymax : float maximum latitude, unit is degree yinc : float increment of latitude maxnum : int point number of one request, maximum value is 512 \u0026#34;\u0026#34;\u0026#34; xlist = np.arange(xmin, xmax, xinc) ylist = np.arange(ymin, ymax, yinc) points = [(y, x) for y in ylist for x in xlist] requestnum = int(np.floor(len(points) / maxnum) + 1) npoints = np.array_split(points, requestnum) if requestnum \u0026gt; 2500: print(\u0026#34;Error: Request number exceed! Change grid or region.\u0026#34;) return [gmaps.elevation(locations=loc.tolist()) for loc in npoints] # 设置要下载高程数据的经度范围、纬度范围以及网格间隔 xmin, xmax, xinc = 120.000, 129.005, 0.00005 ymin, ymax, yinc = 30.000, 30.005, 0.00005 gmaps = googlemaps.Client(key=\u0026#39;YOU_API_KEY\u0026#39;) # Obtain all elevations # 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度 elevations = request_elevation(xmin, xmax, xinc, ymin, ymax, yinc, maxnum=512) # output data with format `longitude latitude elevation resolution` with open(\u0026#34;Elevations.dat\u0026#34;, \u0026#34;w\u0026#34;) as f: for loclist in elevations: for subloc in loclist: outputstr = \u0026#34;{:.5f}{:.5f}{:.5f}{:.5f}\\n\u0026#34;.format( subloc[\u0026#39;location\u0026#39;][\u0026#39;lng\u0026#39;], subloc[\u0026#39;location\u0026#39;][\u0026#39;lat\u0026#39;], subloc[\u0026#39;elevation\u0026#39;], subloc[\u0026#39;resolution\u0026#39;]) f.writelines(outputstr) ","date":1505347200,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1505347200,"objectID":"efaa66fad2fb83e9770afdc54bf43b81","permalink":"https://gmt-china.org/blog/google-maps-elevation-api/","publishdate":"2017-09-14T00:00:00Z","relpermalink":"/blog/google-maps-elevation-api/","section":"blog","summary":"如何获得米级精度的高程数据?","tags":["数据下载"],"title":"利用 Google Maps 获取超高精度高程数据","type":"post"},{"authors":["seisman"],"categories":["社区规范"],"content":"欢迎加入“地学GMT中文社区群”:\n 一群:218905582 二群:791856541\nGMT 中文社区群是一个相对活跃且学术氛围浓厚的群。本文是 GMT 中文社区群的入群须知, 也是 GMT 中文社区的提问规范。希望所有群友可以阅读并遵守以下规范来营造更好的群环境。\n群内可以做的事 GMT 相关问题 其他地学软件相关问题 地学科研相关问题 求助文献 发科研相关的培训、会议信息 介绍并推广自己的最新研究成果 群内禁止做的事: 发广告 签到、灌水等无意义行为 人身攻击 讨论政治问题 安装类问题 如果你在安装 GMT 的过程中遇到问题,请参照下面的模板提问。\n 我在安装 GMT 的时候遇到了问题,请问该如何解决?谢谢。\n 操作系统是: Windows XP | Windows 7 | Ubuntu | CentOS | macOS … 要安装的GMT版本是: GMT 4.5.16 | GMT 5.4.2 … 安装GMT参考的文档是: 此处可贴文档的网址 安装过程中显示的错误信息为: 此处可贴图 思路类问题 想要实现某一类图,但不知GMT能否实现或没有实现的思路。\n如果别人文章中有自己想要实现的效果图就直接贴图,并指出自己在实现图中哪一部分 时没有思路。如果找不到已有的效果图,可以考虑手绘示意图,或精准描述自己想要的 效果,以免引起误会,造成不必要的时间浪费。\n 此处先贴一张图\n请问图中的XXXXX能否用GMT实现?该如何实现?谢谢。\n 请问我想用GMT实现XXX效果。此处详细介绍自己想要的效果 。不知GMT中该如何实现? 谢谢。 如果遇到自己画出来的图与自己预期的图不一致,请参考如下模板。\n 当前效果:截图 预期效果:预期效果截图,或对预期效果的精确描述 我的代码是:给出自己使用的代码,可以截图可以贴代码。最好是给出最小示例而不是一堆代码。 GMT版本是: GMT 5.4.2 脚本报错类 遇到绘图脚本或数据处理脚本出错时,请参考如下模板。\n 我想要实现的是 :… 我的命令/脚本是: 可截图或贴脚本 终端报错是: 终端报错截图 文献求助 需要他人帮忙下载文献时,请先使用 sci-hub 工具自行尝试下载 (sci-hub教程)。\n对于中文文献或 sci-hub 无法下载的文献,方可在群中寻找帮助。求助文献时,请先明确 告知“使用 sci-hub无 法下载该文章”并提供文章的官方链接。若找不到官方链接,则提供 文章的标题、作者、期刊、年份等信息。\n求助文献示例如下:\n 文献求助!我已经尝试用 sci-hub 下载但依然下载不到。文章链接为: XXXXXXX。谢谢。 提问的智慧 时间对任何人都是一笔宝贵的财富。没有人有义务回答你的问题。在期望别人回答你的问题 之前先要问一问自己针对这个问题做了哪些努力。\n提问前需要做的事情 大多数的问题,文档都可以为你提供标准的解答。因此在你提问之前,你最好先去阅读一下 相关的文档,至少确保你阅读过一份完整的入门文档。如果你能够在你提问的同时表明 自己已经阅读过文档,但是依旧留有困惑,潜在的回答者会更加愿意为你解答。\n推荐的一些文档:\n GMT 中文社区:图库 GMT 中文手册 GMT 官方文档 提问技巧 精确描述自己做了什么,遇到了什么问题,要提供足够的信息给潜在的回答者,尽量避免 回答者多次要求提问者补充额外的信息的情况。 提供当前所使用的代码。贴完图之后如果自行修正了代码中的某些错误,一定要更新图。 提供截图以及文本。有些时候需要准确看到代码的样子,此时截图更合适;有些时候需要 复制代码在自己电脑上跑一遍,此时提供文本更合适。 提问时说一说自己为了解决这个问题做了哪些事情,没人喜欢“伸手党”。 时间对任何人都是一笔宝贵的财富,请心怀感恩之心。 当你解决了某个问题(不管是别人帮助还是自己茅塞顿开),请不要吝啬告诉大家你的解决方案 当别人正在讨论某个问题时,请不要中间插入自己的问题,待别人的问题告一段落之后再提问。 除非必要,不要在首次发问的时候@某个人,这样给所有人的感觉是你在向这个人提问, 从而失去了更多的潜在回答者。 有问题就直接问,不必管有没有人用过。很多时候,你在A软件中遇到的问题可能跟A软件 完全没有关系,完全没接触过A软件的人可能也可以帮你解决该问题。 ","date":1503446400,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1503446400,"objectID":"2301fc43366f21ffafd90b9294818c90","permalink":"https://gmt-china.org/blog/community-guide/","publishdate":"2017-08-23T00:00:00Z","relpermalink":"/blog/community-guide/","section":"blog","summary":"如何在 QQ 群中正确提问?","tags":null,"title":"GMT 中文社区 QQ 群入群须知","type":"post"},{"authors":["王亮"],"categories":["社区规范"],"content":"GMT 中文社区欢迎读者投稿,稿件主要包括社区博文和绘图实例两大类。\n稿件类型 社区博文 社区博文是与 GMT 官方及社区活动有关的简短文章,包括但不限于:\n GMT 官方新闻(比如新版本发布) GMT 社区新闻(比如聚餐与培训) GMT 使用技巧等 绘图实例 绘图实例是指使用 GMT 绘制的具有典型性的图件。 目前社区维护的绘图实例位于 GMT 中文手册:绘图实例中。\n请参考GMT 中文手册:贡献指南, 直接向中文手册提交绘图实例。\n投稿方式 可以通过如下几种方式投稿:\n 直接在 社区主页 或 GMT中文手册 的 GitHub 仓库中 提交 Issue 或 Pull Request。 (不熟悉 Pull Request 的读者可以参考 Pull Request 流程 将稿件发送至 admin@gmt-china.org 作者权益 请确保你有将稿件投稿到社区的权利,特别是在图件修改自他人图件的情况下。 你所拥有的权益是稿件公开后,你有署名权(如果维护者对你的稿件有大改, 则维护者可能会在你的名字后面署名)。接受的稿件在公开后,任何人对你的稿件都可以 以任何媒介以任何形式进行复制、发行、修改、转换或以其为基础进行再创作用于任何 可能的用途,包括商业目的。别人在使用你的作品之后,应当提及你和 GMT 中文社区, 但社区无法保证第三方会尊重你的权益。\n","date":1502928000,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1652745600,"objectID":"a9b1578652c4c847a80a7183c45edf39","permalink":"https://gmt-china.org/blog/instructions-for-authors/","publishdate":"2017-08-17T00:00:00Z","relpermalink":"/blog/instructions-for-authors/","section":"blog","summary":"如何向GMT中文社区投稿?","tags":null,"title":"投稿须知","type":"post"},{"authors":["SeisPider"],"categories":["科研工具"],"content":"科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, 因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, 可以下载到绝大多数外文期刊的文章甚至书籍。\nsci-hub 网站 sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, 用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:\nhttps://whereisscihub.now.sh/\n使用方法 下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。\n要下载一篇文章,需要知道如下两个信息中的至少一个:\n 文献的官方网址,比如 https://www.sciencedirect.com/science/article/pii/0031920181900467, 可以通过 Google Scholar 等网站搜索得到 文献的DOI,比如 10.1016/0031-9201(81)90046-7,可以从文章的官方网站上找到, 现在大多数文章的参考文献也要求给出DOI信息 DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 https://dx.doi.org/ 后 (例如 https://dx.doi.org/10.1016/0031-9201(81)90046-7 )即可跳转到该文章的真实网址。\n 到 sci-hub 网站下载 访问 sci-hub 网址,比如 https://sci.hubg.org/ ,如下图所示:\n 将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。\n直接利用网址下载全文 打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 sci-hub.org 即可。\n例如,这篇文章的网址是 https://www.sciencedirect.com/science/article/pii/0031920181900467 , 在域名的后面加上 sci-hub 的域名,变成: https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467 即可直接下载文章全文。\n直接利用DOI下载全文 已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 https://sci-hub.org/10.1016/0031-9201(81)90046-7 即可下载文章全文。\n注意事项 当文献下载过频繁会要求用户输入验证码,如下图:\n DOI是如 10.1016/0031-9201(81)90046-7 这样的字符串,前面不要带 doi: 等其他字符。\n sci-hub 不支持下载国内期刊的文章\n ","date":1502496000,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1502496000,"objectID":"947710ef69dcdcf9b0f79aeff88af1eb","permalink":"https://gmt-china.org/blog/sci-hub/","publishdate":"2017-08-12T00:00:00Z","relpermalink":"/blog/sci-hub/","section":"blog","summary":"教你如何用sci-hub下载文献","tags":["文献下载"],"title":"使用sci-hub下载文献","type":"post"},{"authors":["罗娜"],"categories":["社区动态"],"content":"2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), 四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。\n聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, 并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!\n随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” 美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。\nGMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, 为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, 但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!\n 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) ","date":1474934400,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1474934400,"objectID":"52283088c3114535ce9a0cdb26dcdfb0","permalink":"https://gmt-china.org/blog/gud-20160921/","publishdate":"2016-09-27T00:00:00Z","relpermalink":"/blog/gud-20160921/","section":"blog","summary":"GMT中文社区在湖北武汉组织了第二次线下聚餐。","tags":["GMT User Dinner"],"title":"GMT中文社区第二次线下聚餐","type":"post"},{"authors":["罗娜"],"categories":["社区动态"],"content":"2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 技术管理组举行了首次GMT线下培训活动。\n此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 单斌(中国地质大学特任教授,社区 ID:Bins)和 刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。\n此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, 经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 讲座的最终主题。\n21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, 随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 仁人志士加入到GMT社区的设计和日常维护中。\n单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 分享交流。\n22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, 介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, 具体问题具体分析,带着问题去找答案。\n此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, 推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, 促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, 此次培训取得了预期效果,期待下一次培训的召开。\n ","date":1474761600,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1474761600,"objectID":"112a967ec0f76cfe03a70221ff98bdd3","permalink":"https://gmt-china.org/blog/gmtcon-20160921/","publishdate":"2016-09-25T00:00:00Z","relpermalink":"/blog/gmtcon-20160921/","section":"blog","summary":"2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 技术管理组举行了首次GMT线下培训活动。\n","tags":["培训"],"title":"GMT中文社区首次线下培训","type":"post"},{"authors":["王亮"],"categories":["社区动态"],"content":"2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。\n6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 “首届中国区域地震学参考模型交流会”。 社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。\n6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。\n 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 ","date":1474675200,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1474675200,"objectID":"b97b8a6df0e885bd9c5a92c1e856b03b","permalink":"https://gmt-china.org/blog/gud-20160628/","publishdate":"2016-09-24T00:00:00Z","relpermalink":"/blog/gud-20160628/","section":"blog","summary":"2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。\n","tags":["GMT User Dinner"],"title":"GMT中文社区首次线下聚餐","type":"post"},{"authors":["eyou"],"categories":["社区动态"],"content":"经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。\nGMT 源码包镜像 镜像地址:http://mirrors.ustc.edu.cn/gmt/\nGMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 bin 目录下。\nGMT 远程数据镜像 镜像地址:https://mirrors.ustc.edu.cn/gmtdata/\nGMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 https://docs.gmt-china.org/latest/dataset/usage/。\n","date":1467936000,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1651795200,"objectID":"2ad6d034cfef30d438df801a5cb1c166","permalink":"https://gmt-china.org/blog/mirror-site-founded/","publishdate":"2016-07-08T00:00:00Z","relpermalink":"/blog/mirror-site-founded/","section":"blog","summary":"GMT国内镜像正式建成","tags":["镜像"],"title":"GMT国内镜像正式建成","type":"post"},{"authors":["seisman"],"categories":["社区动态"],"content":"GMT的中文用户们,大家好,我是 seisman 。\nGMT中文社区于今日正式成立了!\nGMT中文社区是针对GMT中文用户而成立的社区。整个社区目前包含了三个主要部分: 社区主站、GMT中文手册和问答社区。\n在社区的第一篇博文中,我想谈谈建立这个社区的原因及一些想法。\nGMT中文手册 GMT中文手册的项目始于2014年,到2016年初已经初步成形。\n在2014年,网络上能够找到的几本GMT中文文档,大多基于GMT4甚至GMT3。 这几本文档存在一些明显的缺陷:\n 排版质量一般,大多是在Word里写好然后转换成PDF的 缺乏维护,几乎都是写好发布之后就没有再更新 不完整,很多有价值的内容都没有被包含在文档中 不严谨,很多文档声称是基于GMT4,但实际上某些命令却在使用GMT3的语法 无法适配最新版的GMT,某些时候对于新用户而言是一种障碍 重复劳动:不同的作者,花费了大量的时间和精力,翻译整理出了几份相似的文档, 这其中很多工作都是在重复劳动 因而,我于2014年开始写针对GMT5的中文手册。新的GMT中文手册具有如下特点:\n 开源:源代码用rST语言写成,并在GitHub上开源 高质量排版:文档有网页版和PDF版,保证高质量的排版(目前尚存在不足,见第5条) 完整性:尽可能覆盖GMT的方方面面,成为一个完整的参考手册(没有最完整,只有更完整,见第5条) 协同合作:依托强大的GitHub和Git,使得多人合作共同编辑同一份文档变得很简单 持续维护:不仅适配GMT的新版本,而且不断修正文档中存在的错误 严谨性:尽可能保证所有命令均通过GMT最新版本的测试 经过两年努力,文档的整体结构已经大体完成。我希望文档今后能够持续更新,不断完善, 不管是接下来的GMT 5.2.2、5.3.0还是未来的GMT 6.0甚至7.0,都能随着GMT版本的升级 而不断更新,但这些已非我一人之力所能完成。众人拾柴火焰高。我希望有更多的GMT中文 用户加入到文档维护的队伍中来,这便是我建立GMT中文社区的目的。\n问答社区 问答社区试运行了一段时间,但最终还是因为用户参与度较低而决定关闭问答社区。 GMT问答社区的前身是地学GMT学习群(群号:218905582)。QQ群属于即时通讯,通常在 群中提的问题都可以快速得到答案,但与此同时,QQ群存在如下缺点:\n 即时性导致的随意性:由于QQ本质上是一种聊天工具,导致很多人在提问时太过随意。 遇到问题时,不加思索在QQ群中提问,却不去思考如何提问,如何在提问时提供完整 有效的信息,如何在提问时解释清楚自己想要实现什么和遇到了什么问题。 QQ群中的很多提问都是如此,需要回答者多次向提问者发问才能搞清楚提问者的问题。 这不仅浪费了回答者的时间,也不利于提问者能力的提高。 多话题引起的错乱:经常遇到几个人同时提问,几个话题互相交叉,使得搞不清到底谁在回复谁 问答记录无法长期保存:只有用户接收到的消息会被保存到本地磁盘中,而对于 新加入的成员而言,则无法看到历史聊天记录 问答记录无法搜索:仅当聊天记录保存在本地磁盘中才能被搜索,无法通过搜索引擎检索 问答记录无法被非群成员搜索:有大量的GMT用户未加入群中,这些非成员则无法获取这些优质的问答资源 Linux用户提问不便:Linux下几乎没有可用的QQ客户端,导致众多Linux下的GMT用户 只能通过手机打字在群中提问,且只能通过手机拍照的方式上传屏幕截图 鉴于QQ群的以上几个缺点,萌生了建立问答社区的想法。希望这样一个问答社区可以解决QQ 群存在的问题。问答社区将努力保持高信噪比,专注于GMT的问与答。\nGMT中文社区 最初是计划把中文手册以及问答社区都放在我自己的博客域名之下的,但这样做一方面 不够正式,另一方面也会影响到我对于自己博客的整体定位。最终经过一番考量之后, 决定单独购买域名,建立GMT中文社区,然后将文档以及问答社区作为GMT中文社区的子项目。\n现在,整个GMT中文社区的基本框架已经搭建完毕。我希望它能顺利运行下去,也欢迎 更多的人提意见和建议,加入到整个社区的维护中来。\n最后,我要感谢王亮在整个社区的建立过程中和我交流与讨论,并给出了很多有意义的建议。 我还要感谢各种开源服务,我的工作是建立在它们之上的。我也希望华语地学界有更多的 人了解开源、认同开源、热爱开源并最终参与到开源中来。\n","date":1459900800,"expirydate":-62135596800,"kind":"page","lang":"zh","lastmod":1550016000,"objectID":"5843da18699ae5e98b308f7d0b133026","permalink":"https://gmt-china.org/blog/gmt-china-community-founded/","publishdate":"2016-04-06T00:00:00Z","relpermalink":"/blog/gmt-china-community-founded/","section":"blog","summary":"GMT中文社区于今日正式成立了!","tags":null,"title":"GMT中文社区正式成立","type":"post"}] \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 00000000..66d347d5 --- /dev/null +++ b/index.xml @@ -0,0 +1,1518 @@ + + + + GMT 中文社区 + https://gmt-china.org/ + + GMT 中文社区 + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + GMT 中文社区 + https://gmt-china.org/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + 2021版1:100万全国标准基础地理数据!你值得拥有 + https://gmt-china.org/blog/national-geographic-database/ + Sun, 15 Apr 2018 00:00:00 +0000 + https://gmt-china.org/blog/national-geographic-database/ + <p>本文介绍国家标准地理数据的获取以及处理为 GMT 支持格式的方法。</p> +<p>具体包括:</p> +<ul> +<li>国家标准1:100万(非涉密)基础地理数据的申请、下载</li> +<li>数据集内容简介</li> +<li>数据集要素合并、提取及格式转换</li> +</ul> +<div class="alert alert-info"> + <div> + 本文仅供个人科研作图参考。若使用者编制的地图需向社会公开的,请务必遵守 +《地图管理条例》有关规定依法履行地图审核程序。 + </div> +</div> +<h2 id="数据概况">数据概况</h2> +<p>国家基础地理信息中心于2017年11月份开始免费向公众提供全国1:100万非涉密的全国基础地理数据库。目前数据最新为2021版。该数据库:</p> +<ul> +<li>共77幅DLG数据集,包括全国陆地范围以及台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域。</li> +<li>包括水系、居民地及设施、公路铁路、行政边界、地名等5个数据集12个数据层。</li> +</ul> +<p>数据更多介绍可访问<a href="http://www.webmap.cn/commres.do?method=result100W" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>。</p> +<h2 id="数据获取">数据获取</h2> +<ul> +<li>进入<a href="http://www.webmap.cn" target="_blank" rel="noopener">全国地理信息资源目录服务系统</a>,点右上角“注册”。已注册用户直接登陆。</li> +<li>在“数据下载”栏目中,点击进入“1:100万全国基础地理信息数据库”。</li> +<li>该数据集下有77个图幅产品。可选择一两个图幅,或全部选中,加入成果车。</li> +<li>结算,填写订单中的个人信息,<strong>验证手机号</strong>,下载数据。 +**注:**若未提示验证手机,换个firefox浏览器试试。</li> +</ul> +<h2 id="数据集内容简介">数据集内容简介</h2> +<p>该数据集包括5类12个要素集,如下图所示:</p> + + + + + + + + + + + + + + + + +<figure id="figure-全国基础地理数据库数据集"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="全国基础地理数据库数据集" srcset=" + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp 400w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_7d8a566b65f496628f042f40cef71c1f.webp 760w, + /blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/01.datalist_huf3ea7e69a9c5248598ec01115e2b1c27_77037_58b4b82665dbe53f9bce57ac84e2ac38.webp" + width="760" + height="282" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 全国基础地理数据库数据集 + </figcaption></figure> +<p>每个要素集内又包括不同等级的自然地理要素,以BOUL要素集(图层)为例:</p> +<p><strong>BOUL 中国及邻区各级行政界限(线)图层</strong></p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="BOUL" srcset=" + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp 400w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_53f1dec19259504f4a8e8d1ee184c1a3.webp 760w, + /blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/05.BOUL_huea9dd9a475ac6eb0176f34a75d227dc2_578086_62c837662175a9416e739767493ef576.webp" + width="760" + height="616" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>该数据集包括各级行政区界线,以GB码进行区分:</p> +<table> +<thead> +<tr> +<th>行政区界类型</th> +<th>GB码</th> +</tr> +</thead> +<tbody> +<tr> +<td>海岸线</td> +<td>250200</td> +</tr> +<tr> +<td>水系交汇处</td> +<td>260100</td> +</tr> +<tr> +<td>外国地区国界线</td> +<td>610200</td> +</tr> +<tr> +<td>国界线(已定)</td> +<td>620201</td> +</tr> +<tr> +<td>国界线(未定)</td> +<td>620202</td> +</tr> +<tr> +<td>省级界线</td> +<td>630200</td> +</tr> +<tr> +<td>特别行政区界</td> +<td>630400</td> +</tr> +<tr> +<td>地、市、州级行政区界</td> +<td>640200</td> +</tr> +<tr> +<td>县级行政区界</td> +<td>650200</td> +</tr> +<tr> +<td>特殊地区界限</td> +<td>670202</td> +</tr> +</tbody> +</table> +<p>其他各图层内不同要素的分类编码可参考基础地理信息要素分类与代码(GB/T 13923-2006)。</p> +<p>此外,常用的还有 <strong>AGNP 各级行政地名和城乡居民地坐标(点)图层</strong></p> +<p>行政地名点以政府驻地来定位,无GB码,以CLASS类别区分:</p> +<table> +<thead> +<tr> +<th>行政地名点类型</th> +<th>CLASS类别</th> +</tr> +</thead> +<tbody> +<tr> +<td>国名</td> +<td>AA</td> +</tr> +<tr> +<td>省(直辖市、自治区、特别行政区)行政地名</td> +<td>AB</td> +</tr> +<tr> +<td>自治州、盟、地区行政地名</td> +<td>AC</td> +</tr> +<tr> +<td>地级市行政地名</td> +<td>AD</td> +</tr> +<tr> +<td>县级市行政地名</td> +<td>AE</td> +</tr> +<tr> +<td>县(自治县、旗、自治旗、地级市市辖区)级市行政地名</td> +<td>AF</td> +</tr> +<tr> +<td>县辖区及县级行政区域的派出机构地名</td> +<td>AG</td> +</tr> +<tr> +<td>街道办事处地名</td> +<td>AH</td> +</tr> +<tr> +<td>镇行政地名</td> +<td>AI</td> +</tr> +<tr> +<td>乡行政地名</td> +<td>AJ</td> +</tr> +<tr> +<td>建制村地名</td> +<td>AK</td> +</tr> +<tr> +<td>城镇区片、小区名</td> +<td>BA</td> +</tr> +<tr> +<td>自然村、屯、片村、村民小组名</td> +<td>BB</td> +</tr> +<tr> +<td>牧点、渔点、棚房名</td> +<td>BC</td> +</tr> +<tr> +<td>其它</td> +<td>BD</td> +</tr> +<tr> +<td>党政机关、党派团体名</td> +<td>CA</td> +</tr> +<tr> +<td>企事业单位名</td> +<td>CB</td> +</tr> +<tr> +<td>农、林、牧、渔场</td> +<td>CC</td> +</tr> +</tbody> +</table> +<h2 id="数据处理">数据处理</h2> +<p>从网站上直接下载的数据是分图幅的 geodatabase(gdb) 数据库文件,如果需要用 GMT画“全国一张图”,需要:</p> +<ul> +<li>合并77个gdb文件中的同类要素</li> +<li>提取某类要素中的某个等级数据</li> +<li>转为gmt识别的文本格式</li> +</ul> +<h3 id="gdb数据库文件合并">gdb数据库文件合并</h3> +<p>采用本社区一贯推荐的<a href="https://docs.gmt-china.org/latest/utilities/gdal/" target="_blank" rel="noopener">GDAL/ORG库</a>将分幅的gdb数据进行批量合并。 +首先解压所有下载的压缩包,得到以<code>.gdb</code>结尾的目录。目录名类似<code>H51.gdb</code>、<code>I49.gdb</code>等。 +然后在这些目录的上级目录执行以下脚本:</p> +<p>Linux系统: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;./final&#34;</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> i in <span class="k">$(</span>ls -d *.gdb<span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> ! -d <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> <span class="o">]</span> +</span></span><span class="line"><span class="cl"> <span class="k">then</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;creating final filefolder&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -lco <span class="nv">encoding</span><span class="o">=</span>UTF-8 +</span></span><span class="line"><span class="cl"> <span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> <span class="s2">&#34;merging……&#34;</span> +</span></span><span class="line"><span class="cl"> ogr2ogr -f <span class="s1">&#39;ESRI Shapefile&#39;</span> <span class="nv">$file</span> <span class="nv">$i</span> -update -append +</span></span><span class="line"><span class="cl"><span class="k">fi</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span></code></pre></div></p> +<p>Windows系统。注意必须保存为 bat 文件执行,直接复制粘贴到 cmd 中会出现报错: +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bat" data-lang="bat"><span class="line"><span class="cl"><span class="c1">REM 将A49分幅的gdb数据转为一组shp格式的文件,文件夹命名为Merged</span> +</span></span><span class="line"><span class="cl"><span class="c1">REM 编码为UTF-8以正确显示属性字段中的中文</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -lco encoding=UTF-8 Merged A49.gdb +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">REM 将当前目录下剩余所有的gdb数据追加Merged,同类shp文件合并。</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="k">/f</span> <span class="se">%%</span>i <span class="k">in</span> <span class="p">(</span><span class="s1">&#39;dir /b &#34;*.gdb&#34;&#39;</span><span class="p">)</span> <span class="k">do</span> <span class="p">(</span> +</span></span><span class="line"><span class="cl">ogr2ogr -f <span class="s2">&#34;ESRI Shapefile&#34;</span> -update -append Merged <span class="se">%%</span>i +</span></span><span class="line"><span class="cl"><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">pause</span> +</span></span></code></pre></div></p> +<p>若安装有python环境,还可选择<code>ogrmerge.py</code>工具进行批量的格式转换和合并,详见<a href="https://www.gdal.org/ogrmerge.html" target="_blank" rel="noopener">ogrmerge使用手册</a>。</p> +<p>该节将分幅的交通、水系、边界等12类要素分别合并为全国一张图,最后转为12个shp文件。</p> +<h3 id="查询gb代码与class类别">查询GB代码与CLASS类别</h3> +<p>使用<code>ogrinfo</code>可以查询shp文件内包含哪些要素。例如以下命令查询<code>BOUL.shp</code>中包含的GB代码:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct GB FROM BOUL&#34; BOUL.shp +</code></pre><p>而以下命令则查询<code>AGNP.shp</code>中包含的CLASS类别:</p> +<pre tabindex="0"><code>ogrinfo -sql &#34;SELECT distinct CLASS FROM AGNP&#34; AGNP.shp +</code></pre><h3 id="提取某类要素">提取某类要素</h3> +<p>由于每个数据集(一个shp文件)中存在不同等级的要素,而实际可能只使用其中一种,则仍可利用<code>ogr2ogr</code>工具提供的sql查询选项进行提取。</p> +<p>例如:</p> +<p>行政区划<code>BOUL</code>图层中GB代码<code>620201</code>、<code>620202</code>、<code>250200</code>分别为已定国界、未定国界和海岸线,那么提取数据并转化为GMT格式的命令为:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;GB=620201 or GB=620202 or GB=250200&#34; BOUL_sub.gmt BOUL.shp +</code></pre><p>最后GMT绘图如下:</p> +<pre tabindex="0"><code>gmt begin ChinaMap + gmt plot BOUL_sub.gmt -R70/145/3/55 -JM105/35/6.5i +gmt end show +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="ChinaMap" srcset=" + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp 400w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_79d9c8cc22f3da63fa3de483bb3b0046.webp 760w, + /blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/09.ChinaMap_hu47343f6bb81026092cc844ec85bd411e_98501_f26dcbda7785023b8bd506c0b82158b2.webp" + width="760" + height="721" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>如果想要提取行政地名点<code>AGNP</code>图层中的建制村信息(对应CLASS为AK),则使用:</p> +<pre tabindex="0"><code>ogr2ogr -f GMT -where &#34;CLASS=&#39;AK&#39;&#34; AGNP.gmt AGNP.shp +</code></pre><p>注意因为CLASS类别为字符串,所以此处<code>AK</code>需要加上引号。GB代码为整型数因而不需要加引号。</p> +<p>最后转换成的GMT格式数据如下:</p> +<pre tabindex="0"><code>... +# @NCLASS|NAME|PINYIN|GNID|XZNAME +# @Tstring|string|string|string|string +# FEATURE_DATA +# @DAK|岙里王村|Aoliwangcun|330226114037|胡陈乡 +121.68517089 29.388652295 +# @DAK|坝头村|Batoucun|331022000000|亭旁镇 +121.310746425 29.0109724900001 +# @DAK|白岩村|Baiyancun|331082111028|尤溪镇 +120.971417165 28.7226002200001 +# @DAK|柏树下村|Baishuxiacun|331082116042|邵家渡街道 +121.257111875 28.8522451100001 +... +</code></pre><p>以 Windows 系统为例,首先将以上数据的编码转换为GB2312,再使用以下代码绘制:</p> +<pre tabindex="0"><code>gmt begin AGNP jpg + gmt set PS_CHAR_ENCODING Standard+ + + gmt basemap -R120/121/28/29 -JM10c -Baf + gmt grdimage @earth_relief_15s -Cgeo + gmt plot -Sc0.2c -Gred -W0p,black AGNP.gmt + chcp 936 + gmt convert AGNP.gmt -a2=&#34;NAME&#34; | gmt text -F+f10p,40+jTL -D0.15c/0.3c -Gwhite +gmt end +</code></pre><p>绘图结果:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="AGNP" srcset=" + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp 400w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_2f7b5d372b8dbf435311e90fa87e5fc9.webp 760w, + /blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/national-geographic-database/AGNP_hub0eb28ad9760b99d05935a01a7ae7699_306750_86d5ce844a1d4259c458209104530d5b.webp" + width="760" + height="758" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + GMT5在Windows下提示无法创建用户目录的解决办法 + https://gmt-china.org/blog/user-directory-warning/ + Fri, 27 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/user-directory-warning/ + <p>GMT5的某些版本(&lt;5.4.4)在某些特定的Windows下会出现如下警告信息:</p> +<pre tabindex="0"><code>gmt: Unable to create GMT User directory : /Users/用户名/.gmt +gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled. +</code></pre><p>这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 +在于,当前系统没有定义环境变量 <code>HOME</code>,进而导致GMT无法知道当前计算机的主目录的 +具体位置。</p> +<p>虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 +解决办法是:</p> +<pre tabindex="0"><code>1、打开 “我的电脑”-&gt;“属性”-&gt;“高级系统设置”-&gt;“环境变量” +2、新建 “系统变量” + 变量名: HOME + 变量值: C:\Users\用户名 +</code></pre><p>重新运行GMT检查问题是否得到解决,可能需要重启计算机。</p> +<p>经测试,<code>HOME</code> 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, +执行脚本后会生成 <code>%HOME%/.gmt/cache</code> 空文件夹。</p> + + + + + GMT 中文社区第三次线下聚餐 + https://gmt-china.org/blog/gud-20171017/ + Tue, 17 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/gud-20171017/ + <p>金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。</p> +<p>2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。</p> +<p>在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。</p> +<p>希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。</p> +<p>科研道路上,知己天涯若比邻,期待下次再聚~</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp 400w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp 760w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + +<figure id="figure-从左至右依次为章浩东中科院地质与地球物理所王志伟地震局地质研究所王少卿地震局地球物理所-张琰地震局地球物理所张周广州地化所徐荟地震局地球物理所王亮成都理工杨晓瑜地震局地球物理所李佳威地震局地球物理所北大神秘人田冬冬中科大任昱南海所方洪健中科大胡少乾中科大"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所&#43;北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)" srcset=" + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp 400w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp 760w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp" + width="760" + height="493" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) + </figcaption></figure> + + + + + 利用 Google Maps 获取超高精度高程数据 + https://gmt-china.org/blog/google-maps-elevation-api/ + Thu, 14 Sep 2017 00:00:00 +0000 + https://gmt-china.org/blog/google-maps-elevation-api/ + <p>在绘制超小区域的地形图时,常需要超高精度的高程数据。</p> +<p>目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 +可以通过 Google Maps Elevation API 获取米级精度的数据。</p> +<h2 id="数据简介">数据简介</h2> +<p>Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 +置(此类位置返回负值)。</p> +<p>官方文档:</p> +<ul> +<li><a href="https://developers.google.com/maps/documentation/elevation/start?hl=zh-cn" target="_blank" rel="noopener">入门指南</a></li> +<li><a href="https://developers.google.com/maps/documentation/elevation/intro?hl=zh-cn" target="_blank" rel="noopener">开发人员指南</a></li> +</ul> +<h2 id="获取密钥-api-key">获取密钥 API KEY</h2> +<p>想要从Google Maps中获取地形数据,首先需要一个密钥。 +可以从 <a href="https://developers.google.com/maps/documentation/elevation/get-api-key" target="_blank" rel="noopener">get API key</a> +页面开始申请秘钥(需要提供信用卡等信息)。</p> +<p>限额说明:</p> +<ul> +<li>每个用户最多可能只能申请10个免费密钥</li> +<li>每个密钥每天2500次免费请求</li> +<li>每次请求最多512个位置</li> +<li>每秒最多50次请求</li> +</ul> +<h2 id="使用说明">使用说明</h2> +<h3 id="获取单点高程">获取单点高程</h3> +<p>通过简单的网络请求即可获取单点的高程:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&amp;key=YOUR_API_KEY +</code></pre><p>其中:</p> +<ul> +<li><code>locations=39.7391536,-104.9847034</code> 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔;</li> +<li><code>key=YOU_API_KEY</code> 指定了用户密钥,用户需要将自己申请的密钥替换 <code>YOU_API_KEY</code></li> +</ul> +<p>将上面的链接复制到浏览器中,即可得到返回值为::</p> +<pre><code>{ + &quot;results&quot; : [ + { + &quot;elevation&quot; : 1608.637939453125, + &quot;location&quot; : { + &quot;lat&quot; : 39.73915360, + &quot;lng&quot; : -104.98470340 + }, + &quot;resolution&quot; : 4.771975994110107 + } + ], + &quot;status&quot; : &quot;OK&quot; +} +</code></pre> +<p>从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 +resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。</p> +<h3 id="获取多点高程">获取多点高程</h3> +<p>也可以在一次网络请求中获取多个点的高程,多个位置之间用 <code>|</code> 分隔即可。例如:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&amp;key=YOUR_API_KEY +</code></pre><p>但一次请求中的位置不能超过512个。</p> +<h3 id="批量获取高程">批量获取高程</h3> +<p>Google Maps 提供了多种客户端以实现批量获取高程。 +此处以<a href="https://github.com/googlemaps/google-maps-services-python/" target="_blank" rel="noopener">Python客户端</a> 为例。</p> +<ol> +<li> +<p>安装 Google Map API 的 Python模块:</p> +<pre><code> $ pip install -U googlemaps +</code></pre> +</li> +<li> +<p>获取密钥</p> +</li> +<li> +<p>参考如下脚本批量获取高程数据</p> +</li> +</ol> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: utf-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">googlemaps</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="s2">&#34;&#34;&#34;Request elevation and return them with a list +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> Parameter +</span></span></span><span class="line"><span class="cl"><span class="s2"> ========= +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of longitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> yinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of latitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> maxnum : int +</span></span></span><span class="line"><span class="cl"><span class="s2"> point number of one request, maximum value is 512 +</span></span></span><span class="line"><span class="cl"><span class="s2"> &#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">xlist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">ylist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">points</span> <span class="o">=</span> <span class="p">[(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">ylist</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xlist</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">requestnum</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">points</span><span class="p">)</span> <span class="o">/</span> <span class="n">maxnum</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">npoints</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array_split</span><span class="p">(</span><span class="n">points</span><span class="p">,</span> <span class="n">requestnum</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">requestnum</span> <span class="o">&gt;</span> <span class="mi">2500</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Error: Request number exceed! Change grid or region.&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="p">[</span><span class="n">gmaps</span><span class="o">.</span><span class="n">elevation</span><span class="p">(</span><span class="n">locations</span><span class="o">=</span><span class="n">loc</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> <span class="k">for</span> <span class="n">loc</span> <span class="ow">in</span> <span class="n">npoints</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># 设置要下载高程数据的经度范围、纬度范围以及网格间隔</span> +</span></span><span class="line"><span class="cl"><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span> <span class="o">=</span> <span class="mf">120.000</span><span class="p">,</span> <span class="mf">129.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span> <span class="o">=</span> <span class="mf">30.000</span><span class="p">,</span> <span class="mf">30.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">gmaps</span> <span class="o">=</span> <span class="n">googlemaps</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s1">&#39;YOU_API_KEY&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># Obtain all elevations</span> +</span></span><span class="line"><span class="cl"><span class="c1"># 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度</span> +</span></span><span class="line"><span class="cl"><span class="n">elevations</span> <span class="o">=</span> <span class="n">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># output data with format `longitude latitude elevation resolution`</span> +</span></span><span class="line"><span class="cl"><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&#34;Elevations.dat&#34;</span><span class="p">,</span> <span class="s2">&#34;w&#34;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">loclist</span> <span class="ow">in</span> <span class="n">elevations</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">subloc</span> <span class="ow">in</span> <span class="n">loclist</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">outputstr</span> <span class="o">=</span> <span class="s2">&#34;</span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lng&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lat&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;elevation&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;resolution&#39;</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">f</span><span class="o">.</span><span class="n">writelines</span><span class="p">(</span><span class="n">outputstr</span><span class="p">)</span> +</span></span></code></pre></div> + + + + GMT 中文社区 QQ 群入群须知 + https://gmt-china.org/blog/community-guide/ + Wed, 23 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/community-guide/ + <p>欢迎加入“地学GMT中文社区群”:</p> +<p><i class="fab fa-qq"></i> 一群:218905582 +<br> +<i class="fab fa-qq"></i> 二群:791856541</p> +<p>GMT 中文社区群是一个相对活跃且学术氛围浓厚的群。本文是 GMT 中文社区群的入群须知, +也是 GMT 中文社区的提问规范。希望所有群友可以阅读并遵守以下规范来营造更好的群环境。</p> +<div class="row "> +<div class="col-md-6"> +<h4 id="群内可以做的事">群内可以做的事</h4> +<ul> +<li>GMT 相关问题</li> +<li>其他地学软件相关问题</li> +<li>地学科研相关问题</li> +<li>求助文献</li> +<li>发科研相关的培训、会议信息</li> +<li>介绍并推广自己的最新研究成果</li> +</ul> +</div> +<div class="col-md-6"> +<h4 id="群内禁止做的事">群内禁止做的事:</h4> +<ul> +<li>发广告</li> +<li>签到、灌水等无意义行为</li> +<li>人身攻击</li> +<li>讨论政治问题</li> +</ul> +</div> +</div> +<h2 id="安装类问题">安装类问题</h2> +<p>如果你在安装 GMT 的过程中遇到问题,请参照下面的模板提问。</p> +<div class="alert alert-info"> + <div> + <p>我在安装 GMT 的时候遇到了问题,请问该如何解决?谢谢。</p> +<ul> +<li><strong>操作系统是</strong>: Windows XP | Windows 7 | Ubuntu | CentOS | macOS &hellip;</li> +<li><strong>要安装的GMT版本是</strong>: GMT 4.5.16 | GMT 5.4.2 &hellip;</li> +<li><strong>安装GMT参考的文档是</strong>: <em>此处可贴文档的网址</em></li> +<li><strong>安装过程中显示的错误信息为</strong>: <em>此处可贴图</em></li> +</ul> + </div> +</div> +<h2 id="思路类问题">思路类问题</h2> +<p>想要实现某一类图,但不知GMT能否实现或没有实现的思路。</p> +<p>如果别人文章中有自己想要实现的效果图就直接贴图,并指出自己在实现图中哪一部分 +时没有思路。如果找不到已有的效果图,可以考虑手绘示意图,或精准描述自己想要的 +效果,以免引起误会,造成不必要的时间浪费。</p> +<div class="alert alert-info"> + <div> + <p><em>此处先贴一张图</em></p> +<p>请问图中的XXXXX能否用GMT实现?该如何实现?谢谢。</p> + </div> +</div> +<div class="alert alert-info"> + <div> + 请问我想用GMT实现XXX效果。<em>此处详细介绍自己想要的效果</em> 。不知GMT中该如何实现? +谢谢。 + </div> +</div> +<p>如果遇到自己画出来的图与自己预期的图不一致,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>当前效果</strong>:截图</li> +<li><strong>预期效果</strong>:预期效果截图,或对预期效果的精确描述</li> +<li><strong>我的代码是</strong>:给出自己使用的代码,可以截图可以贴代码。最好是给出最小示例而不是一堆代码。</li> +<li><strong>GMT版本是</strong>: GMT 5.4.2</li> +</ul> + </div> +</div> +<h2 id="脚本报错类">脚本报错类</h2> +<p>遇到绘图脚本或数据处理脚本出错时,请参考如下模板。</p> +<div class="alert alert-info"> + <div> + <ul> +<li><strong>我想要实现的是</strong> :&hellip;</li> +<li><strong>我的命令/脚本是</strong>: 可截图或贴脚本</li> +<li><strong>终端报错是</strong>: 终端报错截图</li> +</ul> + </div> +</div> +<h2 id="文献求助">文献求助</h2> +<p>需要他人帮忙下载文献时,请先使用 sci-hub 工具自行尝试下载 +(<a href="https://gmt-china.org/blog/sci-hub/">sci-hub教程</a>)。</p> +<p>对于中文文献或 sci-hub 无法下载的文献,方可在群中寻找帮助。求助文献时,请先明确 +告知“使用 sci-hub无 法下载该文章”并提供文章的官方链接。若找不到官方链接,则提供 +文章的标题、作者、期刊、年份等信息。</p> +<p>求助文献示例如下:</p> +<div class="alert alert-info"> + <div> + 文献求助!我已经尝试用 sci-hub 下载但依然下载不到。文章链接为: XXXXXXX。谢谢。 + </div> +</div> +<h2 id="提问的智慧">提问的智慧</h2> +<p>时间对任何人都是一笔宝贵的财富。没有人有义务回答你的问题。在期望别人回答你的问题 +之前先要问一问自己针对这个问题做了哪些努力。</p> +<h3 id="提问前需要做的事情">提问前需要做的事情</h3> +<p>大多数的问题,文档都可以为你提供标准的解答。因此在你提问之前,你最好先去阅读一下 +相关的文档,至少确保你阅读过一份完整的入门文档。如果你能够在你提问的同时表明 +自己已经阅读过文档,但是依旧留有困惑,潜在的回答者会更加愿意为你解答。</p> +<p>推荐的一些文档:</p> +<ul> +<li><a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文社区:图库</a></li> +<li><a href="https://docs.gmt-china.org/" target="_blank" rel="noopener">GMT 中文手册</a></li> +<li><a href="https://docs.generic-mapping-tools.org/latest/" target="_blank" rel="noopener">GMT 官方文档</a></li> +</ul> +<h3 id="提问技巧">提问技巧</h3> +<ol> +<li>精确描述自己做了什么,遇到了什么问题,要提供足够的信息给潜在的回答者,尽量避免 +回答者多次要求提问者补充额外的信息的情况。</li> +<li>提供当前所使用的代码。贴完图之后如果自行修正了代码中的某些错误,一定要更新图。</li> +<li>提供截图以及文本。有些时候需要准确看到代码的样子,此时截图更合适;有些时候需要 +复制代码在自己电脑上跑一遍,此时提供文本更合适。</li> +<li>提问时说一说自己为了解决这个问题做了哪些事情,没人喜欢“伸手党”。</li> +<li>时间对任何人都是一笔宝贵的财富,请心怀感恩之心。</li> +<li>当你解决了某个问题(不管是别人帮助还是自己茅塞顿开),请不要吝啬告诉大家你的解决方案</li> +<li>当别人正在讨论某个问题时,请不要中间插入自己的问题,待别人的问题告一段落之后再提问。</li> +<li>除非必要,不要在首次发问的时候@某个人,这样给所有人的感觉是你在向这个人提问, +从而失去了更多的潜在回答者。</li> +<li>有问题就直接问,不必管有没有人用过。很多时候,你在A软件中遇到的问题可能跟A软件 +完全没有关系,完全没接触过A软件的人可能也可以帮你解决该问题。</li> +</ol> + + + + + 投稿须知 + https://gmt-china.org/blog/instructions-for-authors/ + Thu, 17 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/instructions-for-authors/ + <p>GMT 中文社区欢迎读者投稿,稿件主要包括社区博文和绘图实例两大类。</p> +<h2 id="稿件类型">稿件类型</h2> +<h3 id="社区博文">社区博文</h3> +<p>社区博文是与 GMT 官方及社区活动有关的简短文章,包括但不限于:</p> +<ol> +<li>GMT 官方新闻(比如新版本发布)</li> +<li>GMT 社区新闻(比如聚餐与培训)</li> +<li>GMT 使用技巧等</li> +</ol> +<h3 id="绘图实例">绘图实例</h3> +<p>绘图实例是指使用 GMT 绘制的具有典型性的图件。 +目前社区维护的绘图实例位于 +<a href="https://docs.gmt-china.org/latest/gallery/" target="_blank" rel="noopener">GMT 中文手册:绘图实例</a>中。</p> +<p>请参考<a href="https://docs.gmt-china.org/latest/contributing/" target="_blank" rel="noopener">GMT 中文手册:贡献指南</a>, +直接向中文手册提交绘图实例。</p> +<h2 id="投稿方式">投稿方式</h2> +<p>可以通过如下几种方式投稿:</p> +<ol> +<li>直接在 <a href="https://github.com/gmt-china/gmt-china.org" target="_blank" rel="noopener">社区主页</a> +或 <a href="https://github.com/gmt-china/GMT_docs" target="_blank" rel="noopener">GMT中文手册</a> 的 GitHub 仓库中 +提交 Issue 或 Pull Request。 +(不熟悉 Pull Request 的读者可以参考 <a href="https://seismo-learn.org/contributing/pull-request/" target="_blank" rel="noopener">Pull Request 流程</a></li> +<li>将稿件发送至 <a href="mailto:admin@gmt-china.org">admin@gmt-china.org</a></li> +</ol> +<h2 id="作者权益">作者权益</h2> +<p>请确保你有将稿件投稿到社区的权利,特别是在图件修改自他人图件的情况下。 +你所拥有的权益是稿件公开后,你有署名权(如果维护者对你的稿件有大改, +则维护者可能会在你的名字后面署名)。接受的稿件在公开后,任何人对你的稿件都可以 +以任何媒介以任何形式进行复制、发行、修改、转换或以其为基础进行再创作用于任何 +可能的用途,包括商业目的。别人在使用你的作品之后,应当提及你和 GMT 中文社区, +但社区无法保证第三方会尊重你的权益。</p> + + + + + 使用sci-hub下载文献 + https://gmt-china.org/blog/sci-hub/ + Sat, 12 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/sci-hub/ + <p>科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, +因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, +可以下载到绝大多数外文期刊的文章甚至书籍。</p> +<h2 id="sci-hub-网站">sci-hub 网站</h2> +<p>sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, +用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:</p> +<p><a href="https://whereisscihub.now.sh/" target="_blank" rel="noopener">https://whereisscihub.now.sh/</a></p> +<h2 id="使用方法">使用方法</h2> +<p>下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。</p> +<p>要下载一篇文章,需要知道如下两个信息中的至少一个:</p> +<ol> +<li>文献的官方网址,比如 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a>, +可以通过 Google Scholar 等网站搜索得到</li> +<li>文献的DOI,比如 <code>10.1016/0031-9201(81)90046-7</code>,可以从文章的官方网站上找到, +现在大多数文章的参考文献也要求给出DOI信息</li> +</ol> +<blockquote> +<p>DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 +全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, +DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 <a href="https://dx.doi.org/" target="_blank" rel="noopener">https://dx.doi.org/</a> 后 +(例如 <a href="https://dx.doi.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://dx.doi.org/10.1016/0031-9201(81)90046-7</a> )即可跳转到该文章的真实网址。</p> +</blockquote> +<h3 id="到-sci-hub-网站下载">到 sci-hub 网站下载</h3> +<p>访问 sci-hub 网址,比如 <a href="https://sci.hubg.org/" target="_blank" rel="noopener">https://sci.hubg.org/</a> ,如下图所示:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub主页" srcset=" + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp 400w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp 760w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp" + width="760" + height="407" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。</p> +<h3 id="直接利用网址下载全文">直接利用网址下载全文</h3> +<p>打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 <code>sci-hub.org</code> 即可。</p> +<p>例如,这篇文章的网址是 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a> , +在域名的后面加上 sci-hub 的域名,变成: +<a href="https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467</a> +即可直接下载文章全文。</p> +<h3 id="直接利用doi下载全文">直接利用DOI下载全文</h3> +<p>已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 +<a href="https://sci-hub.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://sci-hub.org/10.1016/0031-9201(81)90046-7</a> 即可下载文章全文。</p> +<h2 id="注意事项">注意事项</h2> +<ul> +<li> +<p>当文献下载过频繁会要求用户输入验证码,如下图:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub验证码" srcset=" + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp 400w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp 760w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp" + width="760" + height="386" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +</li> +<li> +<p>DOI是如 <code>10.1016/0031-9201(81)90046-7</code> 这样的字符串,前面不要带 <code>doi:</code> 等其他字符。</p> +</li> +<li> +<p>sci-hub 不支持下载国内期刊的文章</p> +</li> +</ul> + + + + + GMT中文社区第二次线下聚餐 + https://gmt-china.org/blog/gud-20160921/ + Tue, 27 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160921/ + <p>2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 +刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), +四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。</p> +<p>聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 +被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 +欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 +工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 +腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 +将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, +并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 +和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 +仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!</p> +<p>随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 +全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 +此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” +美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。</p> +<p>GMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, +为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 +遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 +一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, +但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!</p> + + + + + + + + + + + + + + + + +<figure id="figure-参会人员从左往右依次为章婷湖北省地震局刘珠妹中国地震局地震研究所王丽霞中国地震局兰州地震研究所杨萍中国地震局兰州地震研究所郑海刚安徽省地震局谢小晋中国地质大学-武汉贾媛山东省地震局杨锦玲福建省地震局田冬冬中国科学技术大学肖晓武汉大学赵志远河北省地震局刘旭耀中国地质大学-武汉罗娜河北省地震局邓明莉中国科学院测量与地球物理研究所刘成利中国地质大学-武汉单斌中国地质大学-武汉"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉)" srcset=" + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp 400w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp 760w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) + </figcaption></figure> + + + + + GMT中文社区首次线下培训 + https://gmt-china.org/blog/gmtcon-20160921/ + Sun, 25 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmtcon-20160921/ + <p>2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。</p> +<p>此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 +单斌(中国地质大学特任教授,社区 ID:Bins)和 +刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 +做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 +专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。</p> +<p>此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, +经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 +讲座的最终主题。</p> +<p>21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, +随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 +学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 +仁人志士加入到GMT社区的设计和日常维护中。</p> +<p>单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 +编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 +最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 +分享交流。</p> +<p>22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 +使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, +介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 +二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, +具体问题具体分析,带着问题去找答案。</p> +<p>此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, +推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, +促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, +此次培训取得了预期效果,期待下一次培训的召开。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="田冬冬" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="单斌" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="刘珠妹" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="现场互动" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + GMT中文社区首次线下聚餐 + https://gmt-china.org/blog/gud-20160628/ + Sat, 24 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160628/ + <p>2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。</p> +<p>6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 +“首届中国区域地震学参考模型交流会”。 +社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。</p> +<p>6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 +在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。</p> + + + + + + + + + + + + + + + + +<figure id="figure-左至右依次为李佳威中国地震局地球物理研究所王志伟中国地震局地质研究所田冬冬中国科学技术大学王亮桂林理工大学李君中国地震局第二监测中心"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心" srcset=" + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp 400w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp 760w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 + </figcaption></figure> + + + + GMT国内镜像正式建成 + https://gmt-china.org/blog/mirror-site-founded/ + Fri, 08 Jul 2016 00:00:00 +0000 + https://gmt-china.org/blog/mirror-site-founded/ + <p>经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 +该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 +GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。</p> +<h2 id="gmt-源码包镜像">GMT 源码包镜像</h2> +<p>镜像地址:<a href="http://mirrors.ustc.edu.cn/gmt/" target="_blank" rel="noopener">http://mirrors.ustc.edu.cn/gmt/</a></p> +<p>GMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 +进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 <code>bin</code> 目录下。</p> +<h2 id="gmt-远程数据镜像">GMT 远程数据镜像</h2> +<p>镜像地址:<a href="https://mirrors.ustc.edu.cn/gmtdata/" target="_blank" rel="noopener">https://mirrors.ustc.edu.cn/gmtdata/</a></p> +<p>GMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 +<a href="https://docs.gmt-china.org/latest/dataset/usage/" target="_blank" rel="noopener">https://docs.gmt-china.org/latest/dataset/usage/</a>。</p> + + + + + GMT中文社区正式成立 + https://gmt-china.org/blog/gmt-china-community-founded/ + Wed, 06 Apr 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmt-china-community-founded/ + <p>GMT的中文用户们,大家好,我是 <a href="https://seisman.info" target="_blank" rel="noopener">seisman</a> 。</p> +<p>GMT中文社区于今日正式成立了!</p> +<p>GMT中文社区是针对GMT中文用户而成立的社区。整个社区目前包含了三个主要部分: +社区主站、GMT中文手册和问答社区。</p> +<p>在社区的第一篇博文中,我想谈谈建立这个社区的原因及一些想法。</p> +<h2 id="gmt中文手册">GMT中文手册</h2> +<p>GMT中文手册的项目始于2014年,到2016年初已经初步成形。</p> +<p>在2014年,网络上能够找到的几本GMT中文文档,大多基于GMT4甚至GMT3。 +这几本文档存在一些明显的缺陷:</p> +<ol> +<li>排版质量一般,大多是在Word里写好然后转换成PDF的</li> +<li>缺乏维护,几乎都是写好发布之后就没有再更新</li> +<li>不完整,很多有价值的内容都没有被包含在文档中</li> +<li>不严谨,很多文档声称是基于GMT4,但实际上某些命令却在使用GMT3的语法</li> +<li>无法适配最新版的GMT,某些时候对于新用户而言是一种障碍</li> +<li>重复劳动:不同的作者,花费了大量的时间和精力,翻译整理出了几份相似的文档, +这其中很多工作都是在重复劳动</li> +</ol> +<p>因而,我于2014年开始写针对GMT5的中文手册。新的GMT中文手册具有如下特点:</p> +<ol> +<li>开源:源代码用rST语言写成,并在GitHub上开源</li> +<li>高质量排版:文档有网页版和PDF版,保证高质量的排版(目前尚存在不足,见第5条)</li> +<li>完整性:尽可能覆盖GMT的方方面面,成为一个完整的参考手册(没有最完整,只有更完整,见第5条)</li> +<li>协同合作:依托强大的GitHub和Git,使得多人合作共同编辑同一份文档变得很简单</li> +<li>持续维护:不仅适配GMT的新版本,而且不断修正文档中存在的错误</li> +<li>严谨性:尽可能保证所有命令均通过GMT最新版本的测试</li> +</ol> +<p>经过两年努力,文档的整体结构已经大体完成。我希望文档今后能够持续更新,不断完善, +不管是接下来的GMT 5.2.2、5.3.0还是未来的GMT 6.0甚至7.0,都能随着GMT版本的升级 +而不断更新,但这些已非我一人之力所能完成。众人拾柴火焰高。我希望有更多的GMT中文 +用户加入到文档维护的队伍中来,这便是我建立GMT中文社区的目的。</p> +<h2 id="问答社区">问答社区</h2> +<div class="alert alert-note"> + <div> + 问答社区试运行了一段时间,但最终还是因为用户参与度较低而决定关闭问答社区。 + </div> +</div> +<p>GMT问答社区的前身是地学GMT学习群(群号:218905582)。QQ群属于即时通讯,通常在 +群中提的问题都可以快速得到答案,但与此同时,QQ群存在如下缺点:</p> +<ol> +<li>即时性导致的随意性:由于QQ本质上是一种聊天工具,导致很多人在提问时太过随意。 +遇到问题时,不加思索在QQ群中提问,却不去思考如何提问,如何在提问时提供完整 +有效的信息,如何在提问时解释清楚自己想要实现什么和遇到了什么问题。 +QQ群中的很多提问都是如此,需要回答者多次向提问者发问才能搞清楚提问者的问题。 +这不仅浪费了回答者的时间,也不利于提问者能力的提高。</li> +<li>多话题引起的错乱:经常遇到几个人同时提问,几个话题互相交叉,使得搞不清到底谁在回复谁</li> +<li>问答记录无法长期保存:只有用户接收到的消息会被保存到本地磁盘中,而对于 +新加入的成员而言,则无法看到历史聊天记录</li> +<li>问答记录无法搜索:仅当聊天记录保存在本地磁盘中才能被搜索,无法通过搜索引擎检索</li> +<li>问答记录无法被非群成员搜索:有大量的GMT用户未加入群中,这些非成员则无法获取这些优质的问答资源</li> +<li>Linux用户提问不便:Linux下几乎没有可用的QQ客户端,导致众多Linux下的GMT用户 +只能通过手机打字在群中提问,且只能通过手机拍照的方式上传屏幕截图</li> +</ol> +<p>鉴于QQ群的以上几个缺点,萌生了建立问答社区的想法。希望这样一个问答社区可以解决QQ +群存在的问题。问答社区将努力保持高信噪比,专注于GMT的问与答。</p> +<h2 id="gmt中文社区">GMT中文社区</h2> +<p>最初是计划把中文手册以及问答社区都放在我自己的博客域名之下的,但这样做一方面 +不够正式,另一方面也会影响到我对于自己博客的整体定位。最终经过一番考量之后, +决定单独购买域名,建立GMT中文社区,然后将文档以及问答社区作为GMT中文社区的子项目。</p> +<p>现在,整个GMT中文社区的基本框架已经搭建完毕。我希望它能顺利运行下去,也欢迎 +更多的人提意见和建议,加入到整个社区的维护中来。</p> +<p>最后,我要感谢王亮在整个社区的建立过程中和我交流与讨论,并给出了很多有意义的建议。 +我还要感谢各种开源服务,我的工作是建立在它们之上的。我也希望华语地学界有更多的 +人了解开源、认同开源、热爱开源并最终参与到开源中来。</p> + + + + + diff --git a/js/vendor-bundle.min.fab8b449b814cc9f95b22fcf2e45f05b.js b/js/vendor-bundle.min.fab8b449b814cc9f95b22fcf2e45f05b.js new file mode 100644 index 00000000..8280dedb --- /dev/null +++ b/js/vendor-bundle.min.fab8b449b814cc9f95b22fcf2e45f05b.js @@ -0,0 +1 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(s,tk){"use strict";var e,c,h,v,O,C,S,F,N,R,K,Z,J,g=[],to=Object.getPrototypeOf,b=g.slice,tt=g.flat?function(e){return g.flat.call(e)}:function(e){return g.concat.apply([],e)},ep=g.push,$=g.indexOf,Y={},eV=Y.toString,Q=Y.hasOwnProperty,eO=Q.toString,tE=eO.call(Object),i={},n=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},T=function(e){return null!=e&&e===e.window},o=s.document,tC={type:!0,src:!0,nonce:!0,noModule:!0},e3,e0,eR,eI,eW,eU,ta,ec,ey,ef,eK,e$,eY,tu,tn,ts,tr,e1,et,eG,tc,en,e5,ti,eA;function e7(a,e,s){var t,i,n=(s=s||o).createElement("script");if(n.text=a,e)for(t in tC)(i=e[t]||e.getAttribute&&e.getAttribute(t))&&n.setAttribute(t,i);s.head.appendChild(n).parentNode.removeChild(n)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Y[eV.call(e)]||"object":typeof e}e3="3.6.0",e=function(t,n){return new e.fn.init(t,n)};function e2(e){var t=!!e&&"length"in e&&e.length,s=w(e);return!n(e)&&!T(e)&&("array"===s||0===t||"number"==typeof t&&0+~]|"+t+")"+t+"*"),e6=new RegExp(t+"|>"),ef=new RegExp(I),e8=new RegExp("^"+w+"$"),D={ID:new RegExp("^#("+w+")"),CLASS:new RegExp("^\\.("+w+")"),TAG:new RegExp("^("+w+"|[*])"),ATTR:new RegExp("^"+er),PSEUDO:new RegExp("^"+I),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+t+"*(even|odd|(([+-]|)(\\d*)n|)"+t+"*(?:([+-]|)"+t+"*(\\d+)|))"+t+"*\\)|)","i"),bool:new RegExp("^(?:"+$+")$","i"),needsContext:new RegExp("^"+t+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+t+"*((?:-\\d)?\\d*)"+t+"*\\)|)(?=[^-]|$)","i")},eh=/HTML$/i,el=/^(?:input|select|textarea|button)$/i,e2=/^h\d$/i,C=/^[^{]+\{\s*\[native \w/,e3=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,W=/[+~]/,m=new RegExp("\\\\[\\da-fA-F]{1,6}"+t+"?|\\\\([^\\r\\n\\f])","g"),h=function(t,n){var e="0x"+t.slice(1)-65536;return n||(e<0?String.fromCharCode(e+65536):String.fromCharCode(e>>10|55296,1023&e|56320))},es=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,J=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ei=function(){p()},e5=S(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{g.apply(b=en.call(u.childNodes),u.childNodes),b[u.childNodes.length].nodeType}catch(e){g={apply:b.length?function(e,t){ep.apply(e,en.call(t))}:function(e,n){for(var t=e.length,s=0;e[t++]=n[s++];);e.length=t-1}}}function s(s,e,t,j){var r,l,d,m,f,v,b,h=e&&e.ownerDocument,u=e?e.nodeType:9;if(t=t||[],"string"!=typeof s||!s||1!==u&&9!==u&&11!==u)return t;if(!j&&(p(e),e=e||n,c)){if(11!==u&&(m=e3.exec(s)))if(l=m[1]){if(9===u){{if(!(d=e.getElementById(l)))return t;if(d.id===l)return t.push(d),t}}else if(h&&(d=h.getElementById(l))&&k(e,d)&&d.id===l)return t.push(d),t}else{if(m[2])return g.apply(t,e.getElementsByTagName(s)),t;if((l=m[3])&&o.getElementsByClassName&&e.getElementsByClassName)return g.apply(t,e.getElementsByClassName(l)),t}if(o.qsa&&!A[s+" "]&&(!a||!a.test(s))&&(1!==u||"object"!==e.nodeName.toLowerCase())){if(b=s,h=e,1===u&&(e6.test(s)||ee.test(s))){for((h=W.test(s)&&P(e.parentNode)||e)===e&&o.scope||((r=e.getAttribute("id"))?r=r.replace(es,J):e.setAttribute("id",r=i)),v=(f=E(s)).length;v--;)f[v]=(r?"#"+r:":scope")+" "+M(f[v]);b=f.join(",")}try{return g.apply(t,h.querySelectorAll(b)),t}catch(e){A(s,!0)}finally{r===i&&e.removeAttribute("id")}}}return Q(s.replace(T,"$1"),e,t,j)}function F(){var t=[];return function n(s,o){return t.push(s+" ")>e.cacheLength&&delete n[t.shift()],n[s+" "]=o}}function d(e){return e[i]=!0,e}function l(t){var e=n.createElement("fieldset");try{return!!t(e)}catch(e){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function V(s,o){for(var t=s.split("|"),n=t.length;n--;)e.attrHandle[t[n]]=o}function Z(t,n){var e=n&&t,s=e&&1===t.nodeType&&1===n.nodeType&&t.sourceIndex-n.sourceIndex;if(s)return s;if(e)for(;e=e.nextSibling;)if(e===n)return-1;return t?1:-1}function e4(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function e0(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ec(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&e5(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function _(e){return d(function(t){return t=+t,d(function(n,a){for(var s,o=e([],n.length,t),i=o.length;i--;)n[s=o[i]]&&(n[s]=!(a[s]=n[s]))})})}function P(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(x in o=s.support={},et=s.isXML=function(e){var n=e&&e.namespaceURI,t=e&&(e.ownerDocument||e).documentElement;return!eh.test(n||t&&t.nodeName||"HTML")},p=s.setDocument=function(f){var s,p,d=f?f.ownerDocument||f:u;return d!=n&&9===d.nodeType&&d.documentElement&&(r=(n=d).documentElement,c=!et(n),u!=n&&(s=n.defaultView)&&s.top!==s&&(s.addEventListener?s.addEventListener("unload",ei,!1):s.attachEvent&&s.attachEvent("onunload",ei)),o.scope=l(function(e){return r.appendChild(e).appendChild(n.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),o.attributes=l(function(e){return e.className="i",!e.getAttribute("className")}),o.getElementsByTagName=l(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),o.getElementsByClassName=C.test(n.getElementsByClassName),o.getById=l(function(e){return r.appendChild(e).id=i,!n.getElementsByName||!n.getElementsByName(i).length}),o.getById?(e.filter.ID=function(e){var t=e.replace(m,h);return function(e){return e.getAttribute("id")===t}},e.find.ID=function(n,e){if("undefined"!=typeof e.getElementById&&c){var t=e.getElementById(n);return t?[t]:[]}}):(e.filter.ID=function(e){var t=e.replace(m,h);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},e.find.ID=function(t,s){if("undefined"!=typeof s.getElementById&&c){var n,o,i,e=s.getElementById(t);if(e){if((n=e.getAttributeNode("id"))&&n.value===t)return[e];for(i=s.getElementsByName(t),o=0;e=i[o++];)if((n=e.getAttributeNode("id"))&&n.value===t)return[e]}return[]}}),e.find.TAG=o.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):o.qsa?e.querySelectorAll(t):void 0}:function(t,o){var e,n=[],i=0,s=o.getElementsByTagName(t);if("*"===t){for(;e=s[i++];)1===e.nodeType&&n.push(e);return n}return s},e.find.CLASS=o.getElementsByClassName&&function(t,e){if("undefined"!=typeof e.getElementsByClassName&&c)return e.getElementsByClassName(t)},j=[],a=[],(o.qsa=C.test(n.querySelectorAll))&&(l(function(e){var s;r.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&a.push("[*^$]="+t+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||a.push("\\["+t+"*(?:value|"+$+")"),e.querySelectorAll("[id~="+i+"-]").length||a.push("~="),(s=n.createElement("input")).setAttribute("name",""),e.appendChild(s),e.querySelectorAll("[name='']").length||a.push("\\["+t+"*name"+t+"*="+t+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||a.push(":checked"),e.querySelectorAll("a#"+i+"+*").length||a.push(".#.+[+~]"),e.querySelectorAll("\\ "),a.push("[\\r\\n\\f]")}),l(function(e){e.innerHTML="";var s=n.createElement("input");s.setAttribute("type","hidden"),e.appendChild(s).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&a.push("name"+t+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&a.push(":enabled",":disabled"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&a.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),a.push(",.*:")})),(o.matchesSelector=C.test(R=r.matches||r.webkitMatchesSelector||r.mozMatchesSelector||r.oMatchesSelector||r.msMatchesSelector))&&l(function(e){o.disconnectedMatch=R.call(e,"*"),R.call(e,"[s!='']:x"),j.push("!=",I)}),a=a.length&&new RegExp(a.join("|")),j=j.length&&new RegExp(j.join("|")),p=C.test(r.compareDocumentPosition),k=p||C.test(r.contains)?function(e,n){var s=9===e.nodeType?e.documentElement:e,t=n&&n.parentNode;return e===t||!(!t||1!==t.nodeType||!(s.contains?s.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},H=p?function(e,t){if(e===t)return O=!0,0;var s=!e.compareDocumentPosition-!t.compareDocumentPosition;return s||(1&(s=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!o.sortDetached&&t.compareDocumentPosition(e)===s?e==n||e.ownerDocument==u&&k(u,e)?-1:t==n||t.ownerDocument==u&&k(u,t)?1:v?y(v,e)-y(v,t):0:4&s?-1:1)}:function(s,o){if(s===o)return O=!0,0;var e,t=0,r=s.parentNode,c=o.parentNode,i=[s],a=[o];if(!r||!c)return s==n?-1:o==n?1:r?-1:c?1:v?y(v,s)-y(v,o):0;if(r===c)return Z(s,o);for(e=s;e=e.parentNode;)i.unshift(e);for(e=o;e=e.parentNode;)a.unshift(e);for(;i[t]===a[t];)t++;return t?Z(i[t],a[t]):i[t]==u?-1:a[t]==u?1:0}),n},s.matches=function(e,t){return s(e,null,null,t)},s.matchesSelector=function(t,e){if(p(t),o.matchesSelector&&c&&!A[e+" "]&&(!j||!j.test(e))&&(!a||!a.test(e)))try{var i=R.call(t,e);if(i||o.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(t){A(e,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(m,h),e[3]=(e[3]||e[4]||e[5]||"").replace(m,h),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||s.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&s.error(e[0]),e},PSEUDO:function(e){var n,t=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":t&&ef.test(t)&&(n=E(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(e[0]=e[0].slice(0,n),e[2]=t.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(m,h).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var n=eo[e+" "];return n||(n=new RegExp("(^|"+t+")"+e+"("+t+"|$)"))&&eo(e,function(e){return n.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,t,e){return function(i){var o=s.attr(i,n);return null==o?"!="===t:!t||(o+="","="===t?o===e:"!="===t?o!==e:"^="===t?e&&0===o.indexOf(e):"*="===t?e&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function ea(s,t,o){return n(t)?e.grep(s,function(e,n){return!!t.call(e,n,e)!==o}):t.nodeType?e.grep(s,function(e){return e===t!==o}):"string"!=typeof t?e.grep(s,function(e){return-1<$.call(t,e)!==o}):e.filter(t,s,o)}e.filter=function(t,n,o){var s=n[0];return o&&(t=":not("+t+")"),1===n.length&&1===s.nodeType?e.find.matchesSelector(s,t)?[s]:[]:e.find.matches(t,e.grep(n,function(e){return 1===e.nodeType}))},e.fn.extend({find:function(s){var t,n,o=this.length,i=this;if("string"!=typeof s)return this.pushStack(e(s).filter(function(){for(t=0;t)[^>]*|#([\w-]+))$/,(e.fn.init=function(s,t,a){var i,r;if(!s)return this;if(a=a||eR,"string"==typeof s){if(!(i="<"===s[0]&&">"===s[s.length-1]&&3<=s.length?[null,s,null]:eI.exec(s))||!i[1]&&t)return!t||t.jquery?(t||a).find(s):this.constructor(t).find(s);if(i[1]){if(t=t instanceof e?t[0]:t,e.merge(this,e.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),e0.test(i[1])&&e.isPlainObject(t))for(i in t)n(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(r=o.getElementById(i[2]))&&(this[0]=r,this.length=1),this}return s.nodeType?(this[0]=s,this.length=1,this):n(s)?void 0!==a.ready?a.ready(s):s(e):e.makeArray(s,this)}).prototype=e.fn,eR=e(o),eW=/^(?:parents|prev(?:Until|All))/,eU={children:!0,contents:!0,next:!0,prev:!0};function eQ(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}e.fn.extend({has:function(n){var t=e(n,this),s=t.length;return this.filter(function(){for(var n=0;n\x20\t\r\n\f]*)/i,e_=/^$|^module$|\/(?:java|ecma)script/i,E=o.createDocumentFragment().appendChild(o.createElement("div"));(q=o.createElement("input")).setAttribute("type","radio"),q.setAttribute("checked","checked"),q.setAttribute("name","t"),E.appendChild(q),i.checkClone=E.cloneNode(!0).cloneNode(!0).lastChild.checked,E.innerHTML="",i.noCloneChecked=!!E.cloneNode(!0).lastChild.defaultValue,E.innerHTML="",i.option=!!E.lastChild,c={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function r(t,n){var s;return s="undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(n||"*"):"undefined"!=typeof t.querySelectorAll?t.querySelectorAll(n||"*"):[],void 0===n||n&&l(t,n)?e.merge([t],s):s}function eh(n,s){for(var e=0,o=n.length;e",""]),ey=/<|&#?\w+;/;function e9(u,d,g,p,f){for(var t,n,i,l,h,m,o=d.createDocumentFragment(),a=[],s=0,v=u.length;s\s*$/g;function ej(t,n){return l(t,"table")&&l(11!==n.nodeType?n:n.firstChild,"tr")&&e(t).children("tbody")[0]||t}function t7(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function t5(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function ew(n,s){var o,i,r,c,l,d;if(1===s.nodeType){if(t.hasData(n)&&(r=t.get(n).events))for(i in t.remove(s,"handle events"),r)for(o=0,c=r[i].length;o").attr(t.scriptAttrs||{}).prop({charset:t.scriptCharset,src:t.url}).on("load error",n=function(e){s.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),o.head.appendChild(s[0])},abort:function(){n&&n()}}}),en=[],Z=/(=)\?(?=&|$)|\?\?/,e.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=en.pop()||e.expando+"_"+te.guid++;return this[t]=!0,t}}),e.ajaxPrefilter("json jsonp",function(t,c,l){var o,i,a,r=!1!==t.jsonp&&(Z.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Z.test(t.data)&&"data");if(r||"jsonp"===t.dataTypes[0])return o=t.jsonpCallback=n(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,r?t[r]=t[r].replace(Z,"$1"+o):!1!==t.jsonp&&(t.url+=(eo.test(t.url)?"&":"?")+t.jsonp+"="+o),t.converters["script json"]=function(){return a||e.error(o+" was not called"),a[0]},t.dataTypes[0]="json",i=s[o],s[o]=function(){a=arguments},l.always(function(){void 0===i?e(s).removeProp(o):s[o]=i,t[o]&&(t.jsonpCallback=c.jsonpCallback,en.push(o)),a&&n(i)&&i(a[0]),a=i=void 0}),"script"}),i.createHTMLDocument=((tc=o.implementation.createHTMLDocument("").body).innerHTML="
",2===tc.childNodes.length),e.parseHTML=function(a,t,r){return"string"!=typeof a?[]:("boolean"==typeof t&&(r=t,t=!1),t||(i.createHTMLDocument?((c=(t=o.implementation.createHTMLDocument("")).createElement("base")).href=o.location.href,t.head.appendChild(c)):t=o),n=!r&&[],(s=e0.exec(a))?[t.createElement(s[1])]:(s=e9([a],t,n),n&&n.length&&e(n).remove(),e.merge([],s.childNodes)));var n,s,c},e.fn.load=function(s,t,o){var i,c,l,a=this,r=s.indexOf(" ");return-1").append(e.parseHTML(t)).find(i):t)}).always(o&&function(e,t){a.each(function(){o.apply(this,l||[e.responseText,t,e])})}),this},e.expr.pseudos.animated=function(t){return e.grep(e.timers,function(e){return t===e.elem}).length},e.offset={setOffset:function(s,t,m){var i,a,c,l,u,h,r=e.css(s,"position"),d=e(s),o={};"static"===r&&(s.style.position="relative"),i=d.offset(),u=e.css(s,"top"),a=e.css(s,"left"),("absolute"===r||"fixed"===r)&&-1<(u+a).indexOf("auto")?(l=(h=d.position()).top,c=h.left):(l=parseFloat(u)||0,c=parseFloat(a)||0),n(t)&&(t=t.call(s,m,e.extend({},i))),null!=t.top&&(o.top=t.top-i.top+l),null!=t.left&&(o.left=t.left-i.left+c),"using"in t?t.using.call(s,o):d.css(o)}},e.fn.extend({offset:function(o){if(arguments.length)return void 0===o?this:this.each(function(t){e.offset.setOffset(this,o,t)});var n,s,t=this[0];return t?t.getClientRects().length?(n=t.getBoundingClientRect(),s=t.ownerDocument.defaultView,{top:n.top+s.pageYOffset,left:n.left+s.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var t,s,o,n=this[0],i={top:0,left:0};if("fixed"===e.css(n,"position"))s=n.getBoundingClientRect();else{for(s=this.offset(),o=n.ownerDocument,t=n.offsetParent||o.documentElement;t&&(t===o.body||t===o.documentElement)&&"static"===e.css(t,"position");)t=t.parentNode;t&&t!==n&&1===t.nodeType&&((i=e(t).offset()).top+=e.css(t,"borderTopWidth",!0),i.left+=e.css(t,"borderLeftWidth",!0))}return{top:s.top-i.top-e.css(n,"marginTop",!0),left:s.left-i.left-e.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&&"static"===e.css(t,"position");)t=t.offsetParent;return t||_})}}),e.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,n){var s="pageYOffset"===n;e.fn[t]=function(e){return f(this,function(t,i,o){var e;if(T(t)?e=t:9===t.nodeType&&(e=t.defaultView),void 0===o)return e?e[n]:t[i];e?e.scrollTo(s?e.pageXOffset:o,s?o:e.pageYOffset):t[i]=o},t,e,arguments.length)}}),e.each(["top","left"],function(n,t){e.cssHooks[t]=eM(i.pixelPosition,function(s,n){if(n)return n=I(s,t),e4.test(n)?e(s).position()[t]+"px":n})}),e.each({Height:"height",Width:"width"},function(t,n){e.each({padding:"inner"+t,content:n,"":"outer"+t},function(s,o){e.fn[o]=function(i,c){var a=arguments.length&&(s||"boolean"!=typeof i),r=s||(!0===i||!0===c?"margin":"border");return f(this,function(n,i,a){var s;return T(n)?0===o.indexOf("outer")?n["inner"+t]:n.document.documentElement["client"+t]:9===n.nodeType?(s=n.documentElement,Math.max(n.body["scroll"+t],s["scroll"+t],n.body["offset"+t],s["offset"+t],s["client"+t])):void 0===a?e.css(n,i,r):e.style(n,i,a,r)},n,a?i:void 0,a)}})}),e.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(n,t){e.fn[t]=function(e){return this.on(t,e)}}),e.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,s){return this.on(t,e,n,s)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),e.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(n,t){e.fn[t]=function(e,n){return 0=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}},t.jQueryDetection(),e.default.fn.emulateTransitionEnd=function(s){var o=this,n=!1;return e.default(this).one(t.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||t.triggerTransitionEnd(o)},s),this},e.default.event.special[t.TRANSITION_END]={bindType:F,delegateType:F,handle:function(t){if(e.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var em="bs.alert",ne=e.default.fn.alert,b=function(){function n(e){this._element=e}var s=n.prototype;return s.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},s.dispose=function(){e.default.removeData(this._element,em),this._element=null},s._getRootElement=function(s){var o=t.getSelectorFromElement(s),n=!1;return o&&(n=document.querySelector(o)),n||(n=e.default(s).closest(".alert")[0]),n},s._triggerCloseEvent=function(n){var t=e.default.Event("close.bs.alert");return e.default(n).trigger(t),t},s._removeElement=function(n){var s,o=this;e.default(n).removeClass("show"),e.default(n).hasClass("fade")?(s=t.getTransitionDurationFromElement(n),e.default(n).one(t.TRANSITION_END,function(e){return o._destroyElement(n,e)}).emulateTransitionEnd(s)):this._destroyElement(n)},s._destroyElement=function(t){e.default(t).detach().trigger("closed.bs.alert").remove()},n._jQueryInterface=function(t){return this.each(function(){var o=e.default(this),s=o.data(em);s||(s=new n(this),o.data(em,s)),"close"===t&&s[t](this)})},n._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},i(n,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),n}();e.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',b._handleDismiss(new b)),e.default.fn.alert=b._jQueryInterface,e.default.fn.alert.Constructor=b,e.default.fn.alert.noConflict=function(){return e.default.fn.alert=ne,b._jQueryInterface};var er="bs.button",tJ=e.default.fn.button,r="active",t0='[data-toggle^="button"]',e7='input:not([type="hidden"])',t4=".btn",D=function(){function t(e){this._element=e,this.shouldAvoidTriggerChange=!1}var n=t.prototype;return n.toggle=function(){var t,s,n=!0,o=!0,i=e.default(this._element).closest('[data-toggle="buttons"]')[0];i&&(t=this._element.querySelector(e7),t&&("radio"===t.type&&(t.checked&&this._element.classList.contains(r)?n=!1:(s=i.querySelector(".active"),s&&e.default(s).removeClass(r))),n&&("checkbox"!==t.type&&"radio"!==t.type||(t.checked=!this._element.classList.contains(r)),this.shouldAvoidTriggerChange||e.default(t).trigger("change")),t.focus(),o=!1)),this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(o&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(r)),n&&e.default(this._element).toggleClass(r))},n.dispose=function(){e.default.removeData(this._element,er),this._element=null},t._jQueryInterface=function(n,s){return this.each(function(){var i=e.default(this),o=i.data(er);o||(o=new t(this),i.data(er,o)),o.shouldAvoidTriggerChange=s,"toggle"===n&&o[n]()})},i(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();e.default(document).on("click.bs.button.data-api",t0,function(s){var n,t=s.target,o=t;if(e.default(t).hasClass("btn")||(t=e.default(t).closest(t4)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))s.preventDefault();else{if(n=t.querySelector(e7),n&&(n.hasAttribute("disabled")||n.classList.contains("disabled")))return void s.preventDefault();"INPUT"!==o.tagName&&"LABEL"===t.tagName||D._jQueryInterface.call(e.default(t),"toggle","INPUT"===o.tagName)}}).on("focus.bs.button.data-api blur.bs.button.data-api",t0,function(t){var n=e.default(t.target).closest(t4)[0];e.default(n).toggleClass("focus",/^focus(in)?$/.test(t.type))}),e.default(window).on("load.bs.button.data-api",function(){for(var t,n,s,o,a,e=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),i=0,c=e.length;i0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var s=o.prototype;return s.next=function(){this._isSliding||this._slide(X)},s.nextWhenVisible=function(){var t=e.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},s.prev=function(){this._isSliding||this._slide(Q)},s.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(t.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},s.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},s.to=function(t){var n,s,o=this;if(this._activeElement=this._element.querySelector(ee),n=this._getItemIndex(this._activeElement),!(t>this._items.length-1||t<0))if(this._isSliding)e.default(this._element).one(tr,function(){return o.to(t)});else{if(n===t)return this.pause(),void this.cycle();s=t>n?X:Q,this._slide(s,this._items[t])}},s.dispose=function(){e.default(this._element).off(".bs.carousel"),e.default.removeData(this._element,en),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},s._getConfig=function(e){return e=n({},eb,e),t.typeCheckConfig(C,e,tX),e},s._handleSwipe=function(){var e,t=Math.abs(this.touchDeltaX);t<=40||(e=t/this.touchDeltaX,this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next())},s._addEventListeners=function(){var t=this;this._config.keyboard&&e.default(this._element).on("keydown.bs.carousel",function(e){return t._keydown(e)}),"hover"===this._config.pause&&e.default(this._element).on("mouseenter.bs.carousel",function(e){return t.pause(e)}).on("mouseleave.bs.carousel",function(e){return t.cycle(e)}),this._config.touch&&this._addTouchEventListeners()},s._addTouchEventListeners=function(){if(t=this,this._touchSupported){var t,n=function(e){t._pointerEvent&&to[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},s=function(e){t._pointerEvent&&to[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};e.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",function(e){return e.preventDefault()}),this._pointerEvent?(e.default(this._element).on("pointerdown.bs.carousel",function(e){return n(e)}),e.default(this._element).on("pointerup.bs.carousel",function(e){return s(e)}),this._element.classList.add("pointer-event")):(e.default(this._element).on("touchstart.bs.carousel",function(e){return n(e)}),e.default(this._element).on("touchmove.bs.carousel",function(e){return function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX}(e)}),e.default(this._element).on("touchend.bs.carousel",function(e){return s(e)}))}},s._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},s._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(e)},s._getItemByDirection=function(e,s){var n,o=e===X,i=e===Q,t=this._getItemIndex(s),a=this._items.length-1;return(i&&0===t||o&&t===a)&&!this._config.wrap?s:(n=(t+(e===Q?-1:1))%this._items.length,-1===n?this._items[this._items.length-1]:this._items[n])},s._triggerSlideEvent=function(t,s){var o=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(ee)),n=e.default.Event("slide.bs.carousel",{relatedTarget:t,direction:s,from:i,to:o});return e.default(this._element).trigger(n),n},s._setActiveIndicatorElement=function(n){if(this._indicatorsElement){var t,s=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));e.default(s).removeClass(O),t=this._indicatorsElement.children[this._getItemIndex(n)],t&&e.default(t).addClass(O)}},s._updateInterval=function(){var e,t=this._activeElement||this._element.querySelector(ee);t&&(e=parseInt(t.getAttribute("data-interval"),10),e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval)},s._slide=function(c,f){var o,i,a,r,u,d=this,s=this._element.querySelector(ee),m=this._getItemIndex(s),n=f||s&&this._getItemByDirection(c,s),h=this._getItemIndex(n),l=Boolean(this._interval);c===X?(o="carousel-item-left",i="carousel-item-next",a="left"):(o="carousel-item-right",i="carousel-item-prev",a="right"),n&&e.default(n).hasClass(O)?this._isSliding=!1:!this._triggerSlideEvent(n,a).isDefaultPrevented()&&s&&n&&(this._isSliding=!0,l&&this.pause(),this._setActiveIndicatorElement(n),this._activeElement=n,r=e.default.Event(tr,{relatedTarget:n,direction:a,from:m,to:h}),e.default(this._element).hasClass("slide")?(e.default(n).addClass(i),t.reflow(n),e.default(s).addClass(o),e.default(n).addClass(o),u=t.getTransitionDurationFromElement(s),e.default(s).one(t.TRANSITION_END,function(){e.default(n).removeClass(o+" "+i).addClass(O),e.default(s).removeClass("active "+i+" "+o),d._isSliding=!1,setTimeout(function(){return e.default(d._element).trigger(r)},0)}).emulateTransitionEnd(u)):(e.default(s).removeClass(O),e.default(n).addClass(O),this._isSliding=!1,e.default(this._element).trigger(r)),l&&this.cycle())},o._jQueryInterface=function(t){return this.each(function(){var a,s=e.default(this).data(en),i=n({},eb,e.default(this).data());if("object"==typeof t&&(i=n({},i,t)),a="string"==typeof t?t:i.slide,s||(s=new o(this,i),e.default(this).data(en,s)),"number"==typeof t)s.to(t);else if("string"==typeof a){if("undefined"==typeof s[a])throw new TypeError('No method named "'+a+'"');s[a]()}else i.interval&&i.ride&&(s.pause(),s.cycle())})},o._dataApiClickHandler=function(c){if(i=t.getSelectorFromElement(this),i&&(s=e.default(i)[0],s&&e.default(s).hasClass("carousel"))){var s,i,r=n({},e.default(s).data(),e.default(this).data()),a=this.getAttribute("data-slide-to");a&&(r.interval=!1),o._jQueryInterface.call(e.default(s),r),a&&e.default(s).data(en).to(a),c.preventDefault()}},i(o,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return eb}}]),o}();e.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",f._dataApiClickHandler),e.default(window).on("load.bs.carousel.data-api",function(){for(var n,s=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),t=0,o=s.length;t0&&(this._selector=s,this._triggerArray.push(i))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var s=o.prototype;return s.toggle=function(){e.default(this._element).hasClass(N)?this.hide():this.show()},s.show=function(){if(s=this,!(this._isTransitioning||e.default(this._element).hasClass(N)||(this._parent&&0===(n=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function(e){return"string"==typeof s._config.parent?e.getAttribute("data-parent")===s._config.parent:e.classList.contains(e5)})).length&&(n=null),n&&(a=e.default(n).not(this._selector).data(y))&&a._isTransitioning))&&(r=e.default.Event("show.bs.collapse"),e.default(this._element).trigger(r),!r.isDefaultPrevented())){n&&(o._jQueryInterface.call(e.default(n).not(this._selector),"hide"),a||e.default(n).data(y,null)),i=this._getDimension(),e.default(this._element).removeClass(e5).addClass(V),this._element.style[i]=0,this._triggerArray.length&&e.default(this._triggerArray).removeClass(eg).attr("aria-expanded",!0),this.setTransitioning(!0);var n,s,i,a,r,c="scroll"+(i[0].toUpperCase()+i.slice(1)),l=t.getTransitionDurationFromElement(this._element);e.default(this._element).one(t.TRANSITION_END,function(){e.default(s._element).removeClass(V).addClass("collapse show"),s._element.style[i]="",s.setTransitioning(!1),e.default(s._element).trigger("shown.bs.collapse")}).emulateTransitionEnd(l),this._element.style[i]=this._element[c]+"px"}},s.hide=function(){if(o=this,!this._isTransitioning&&e.default(this._element).hasClass(N)&&(i=e.default.Event("hide.bs.collapse"),e.default(this._element).trigger(i),!i.isDefaultPrevented())){if(n=this._getDimension(),this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",t.reflow(this._element),e.default(this._element).addClass(V).removeClass("collapse show"),a=this._triggerArray.length,a>0)for(s=0;s=0)return 1;return 0}(),tK=L&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},tq))}};function eX(e){return e&&"[object Function]"==={}.toString.call(e)}function m(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function ew(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function T(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=m(e),n=t.overflow,s=t.overflowX,o=t.overflowY;return/(auto|scroll|overlay)/.test(n+o+s)?e:T(ew(e))}function eG(e){return e&&e.referenceNode?e.referenceNode:e}ec=L&&!!window.MSInputMethodContext&&!!document.documentMode,eO=L&&/MSIE 10/.test(navigator.userAgent);function v(e){return 11===e?ec:10===e?eO:ec||eO}function g(t){if(!t)return document.documentElement;for(var n,s=v(10)?document.body:null,e=t.offsetParent||null;e===s&&t.nextElementSibling;)e=(t=t.nextElementSibling).offsetParent;return n=e&&e.nodeName,n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(e.nodeName)&&"static"===m(e,"position")?g(e):e:t?t.ownerDocument.documentElement:document.documentElement}function el(e){return null!==e.parentNode?el(e.parentNode):e}function es(e,t){if(!e&&e.nodeType&&t||!t.nodeType)return document.documentElement;var n,s,i,r,c=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,l=c?e:t,a=c?t:e,o=document.createRange();return o.setStart(l,0),o.setEnd(a,0),n=o.commonAncestorContainer,e!==n&&t!==n||l.contains(a)?"BODY"===(r=(i=n).nodeName)||"HTML"!==r&&g(i.firstElementChild)!==i?g(n):n:(s=el(e),s.host?es(s.host,t):es(e,el(t).host))}function p(e){var s,o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",t="top"===i?"scrollTop":"scrollLeft",n=e.nodeName;return"BODY"===n||"HTML"===n?(s=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||s,o[t]):e[t]}function tU(e,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=p(n,"top"),o=p(n,"left"),t=i?-1:1;return e.top+=s*t,e.bottom+=s*t,e.left+=o*t,e.right+=o*t,e}function eK(e,n){var t="x"===n?"Left":"Top",s="Left"===t?"Right":"Bottom";return parseFloat(e["border"+t+"Width"])+parseFloat(e["border"+s+"Width"])}function eV(e,n,t,s){return Math.max(n["offset"+e],n["scroll"+e],t["client"+e],t["offset"+e],t["scroll"+e],v(10)?parseInt(t["offset"+e])+parseInt(s["margin"+("Height"===e?"Top":"Left")])+parseInt(s["margin"+("Height"===e?"Bottom":"Right")]):0)}function eI(t){var n=t.body,e=t.documentElement,s=v(10)&&getComputedStyle(e);return{height:eV("Height",n,e,s),width:eV("Width",n,e,s)}}var tW=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},tV=function(){function e(s,n){for(var e,t=0;t2&&void 0!==arguments[2]&&arguments[2],h=v(10),u="HTML"===n.nodeName,i=e0(p),t=e0(n),r=T(p),o=m(n),d=parseFloat(o.borderTopWidth),c=parseFloat(o.borderLeftWidth);return f&&u&&(t.top=Math.max(t.top,0),t.left=Math.max(t.left,0)),e=l({top:i.top-t.top-d,left:i.left-t.left-c,width:i.width,height:i.height}),(e.marginTop=0,e.marginLeft=0,!h&&u)&&(s=parseFloat(o.marginTop),a=parseFloat(o.marginLeft),e.top-=d-s,e.bottom-=d-s,e.left-=c-a,e.right-=c-a,e.marginTop=s,e.marginLeft=a),(h&&!f?n.contains(r):n===r&&"BODY"!==r.nodeName)&&(e=tU(e,n)),e}function tC(n){var s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=n.ownerDocument.documentElement,t=e2(n,e),o=Math.max(e.clientWidth,window.innerWidth||0),i=Math.max(e.clientHeight,window.innerHeight||0),a=s?0:p(e),r=s?0:p(e,"left"),c={top:a-t.top+t.marginTop,left:r-t.left+t.marginLeft,width:o,height:i};return l(c)}function eH(e){var t,n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===m(e,"position")||(t=ew(e),!!t&&eH(t)))}function eP(t){if(!t||!t.parentElement||v())return document.documentElement;for(var e=t.parentElement;e&&"none"===m(e,"transform");)e=e.parentElement;return e||document.documentElement}function e8(o,l,t,a){var n,s,i,r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],e={top:0,left:0},c=r?eP(o):es(o,eG(l));if("viewport"===a)e=tC(c,r);else if(s=void 0,"scrollParent"===a?"BODY"===(s=T(ew(l))).nodeName&&(s=o.ownerDocument.documentElement):s="window"===a?o.ownerDocument.documentElement:a,n=e2(s,c,r),"HTML"!==s.nodeName||eH(c))e=n;else{var d=eI(o.ownerDocument),u=d.height,h=d.width;e.top+=n.top-n.marginTop,e.bottom=u+n.top,e.left+=n.left-n.marginLeft,e.right=h+n.left}return i="number"==typeof(t=t||0),e.left+=i?t:t.left||0,e.top+=i?t:t.top||0,e.right-=i?t:t.right||0,e.bottom-=i?t:t.bottom||0,e}function tB(e){return e.width*e.height}function eR(s,t,n,u,d){if(r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,-1===s.indexOf("auto"))return s;var r,e=e8(n,u,r,d),i={top:{width:e.width,height:t.top-e.top},right:{width:e.right-t.right,height:e.height},bottom:{width:e.width,height:e.bottom-t.bottom},left:{width:t.left-e.left,height:e.height}},c=Object.keys(i).map(function(e){return o({key:e},i[e],{area:tB(i[e])})}).sort(function(e,t){return t.area-e.area}),a=c.filter(function(e){var t=e.width,s=e.height;return t>=n.clientWidth&&s>=n.clientHeight}),h=a.length>0?a[0].key:c[0].key,l=s.split("-")[1];return h+(l?"-"+l:"")}function eL(o,e,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=n?eP(e):es(e,eG(t));return e2(t,s,n)}function eN(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),s=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+s,height:e.offsetHeight+n}}function W(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function eT(c,e,t){t=t.split("-")[0];var n=eN(c),i={width:n.width,height:n.height},s=-1!==["right","left"].indexOf(t),a=s?"top":"left",o=s?"left":"top",r=s?"height":"width",l=s?"width":"height";return i[a]=e[a]+e[r]/2-n[r]/2,i[o]=t===o?e[o]-n[l]:e[W(o)],i}function S(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function eF(t,e,n){return(void 0===n?t:t.slice(0,function(e,s,t){if(Array.prototype.findIndex)return e.findIndex(function(e){return e.name===t});var n=S(e,function(e){return e.name===t});return e.indexOf(n)}(t,0,n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&eX(n)&&(e.offsets.popper=l(e.offsets.popper),e.offsets.reference=l(e.offsets.reference),e=n(e,t))}),e}function tH(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=eL(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=eR(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=eT(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=eF(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function eA(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function ey(e){for(var n,s,o=[!1,"ms","Webkit","Moz","O"],i=e.charAt(0).toUpperCase()+e.slice(1),t=0;t1&&void 0!==arguments[1]&&arguments[1],e=U.indexOf(n),t=U.slice(e+1).concat(U.slice(0,e));return s?t.reverse():t}eD={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var s=e.placement,d=s.split("-")[0],i=s.split("-")[1];if(i){var a=e.offsets,n=a.reference,r=a.popper,c=-1!==["bottom","top"].indexOf(d),t=c?"left":"top",l=c?"width":"height",u={start:j({},t,n[t]),end:j({},t,n[t]+n[l]-r[l])};e.offsets.popper=o({},r,u[i])}return e}},offset:{order:200,enabled:!0,fn:function(s,a){var t,o=a.offset,r=s.placement,i=s.offsets,e=i.popper,c=i.reference,n=r.split("-")[0];return t=e_(+o)?[+o,0]:function(a,r,c,d){var n,s,o=[0,0],i=-1!==["right","left"].indexOf(d),e=a.split(/(\+|-)/).map(function(e){return e.trim()}),t=e.indexOf(S(e,function(e){return-1!==e.search(/,|\s/)}));return e[t]&&-1===e[t].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."),s=/\s*,\s*|\s+/,n=-1!==t?[e.slice(0,t).concat([e[t].split(s)[0]]),[e[t].split(s)[1]].concat(e.slice(t+1))]:[e],n=n.map(function(t,n){var s=(1===n?!i:i)?"height":"width",e=!1;return t.reduce(function(t,n){return""===t[t.length-1]&&-1!==["+","-"].indexOf(n)?(t[t.length-1]=n,e=!0,t):e?(t[t.length-1]+=n,e=!1,t):t.concat(n)},[]).map(function(e){return function(s,o,i,a){var n=s.match(/((?:-|\+)?\d*\.?\d*)(.*)/),t=+n[1],e=n[2];return t?0===e.indexOf("%")?l("%p"===e?i:a)[o]/100*t:"vh"===e||"vw"===e?("vh"===e?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*t:t:s}(e,s,r,c)})}),n.forEach(function(e,t){e.forEach(function(n,s){e_(n)&&(o[t]+=n*("-"===e[s-1]?-1:1))})}),o}(o,e,c,n),"left"===n?(e.top+=t[0],e.left-=t[1]):"right"===n?(e.top+=t[0],e.left+=t[1]):"top"===n?(e.left+=t[0],e.top-=t[1]):"bottom"===n&&(e.left+=t[0],e.top+=t[1]),s.popper=e,s},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,s){a=s.boundariesElement||g(t.instance.popper),t.instance.reference===a&&(a=g(a));var i,a,r=ey("transform"),n=t.instance.popper.style,c=n.top,l=n.left,d=n[r];n.top="",n.left="",n[r]="",i=e8(t.instance.popper,t.instance.reference,s.padding,a,t.positionFixed),n.top=c,n.left=l,n[r]=d,s.boundaries=i;var u=s.priority,e=t.offsets.popper,h={primary:function(t){var n=e[t];return e[t]i[t]&&!s.escapeWithReference&&(o=Math.min(e[n],i[t]-("right"===t?e.width:e.height))),j({},n,o)}};return u.forEach(function(t){var n=-1!==["left","top"].indexOf(t)?"primary":"secondary";e=o({},e,h[n](t))}),t.offsets.popper=e,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var r=e.offsets,a=r.popper,n=r.reference,c=e.placement.split("-")[0],s=Math.floor,i=-1!==["top","bottom"].indexOf(c),o=i?"right":"bottom",t=i?"left":"top",l=i?"width":"height";return a[o]s(n[o])&&(e.offsets.popper[t]=s(n[o])),e}},arrow:{order:500,enabled:!0,fn:function(e,v){if(!eM(e.instance.modifiers,"arrow","keepTogether"))return e;if(n=v.element,"string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var n,c,w=e.placement.split("-")[0],f=e.offsets,i=f.popper,o=f.reference,a=-1!==["left","right"].indexOf(w),d=a?"height":"width",u=a?"Top":"Left",t=u.toLowerCase(),g=a?"left":"top",r=a?"bottom":"right",s=eN(n)[d];o[r]-si[r]&&(e.offsets.popper[t]+=o[t]+s-i[r]),e.offsets.popper=l(e.offsets.popper);var b=o[t]+o[d]/2-s/2,p=m(e.instance.popper),y=parseFloat(p["margin"+u]),_=parseFloat(p["border"+u+"Width"]),h=b-e.offsets.popper[t]-y-_;return h=Math.max(Math.min(i[d]-s,h),0),e.arrowElement=n,e.offsets.arrow=(j(c={},t,Math.round(h)),j(c,g,""),c),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,i){if(eA(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var a=e8(e.instance.popper,e.instance.reference,i.padding,i.boundariesElement,e.positionFixed),t=e.placement.split("-")[0],r=W(t),n=e.placement.split("-")[1]||"",s=[];switch(i.behavior){case"flip":s=[t,r];break;case"clockwise":s=ez(t);break;case"counterclockwise":s=ez(t,!0);break;default:s=i.behavior}return s.forEach(function(w,j){if(t!==w||s.length===j+1)return e;t=e.placement.split("-")[0],r=W(t);var d=e.offsets.popper,u=e.offsets.reference,c=Math.floor,v="left"===t&&c(d.right)>c(u.left)||"right"===t&&c(d.left)c(u.top)||"bottom"===t&&c(d.top)c(a.right),h=c(d.top)c(a.bottom),b="left"===t&&f||"right"===t&&p||"top"===t&&h||"bottom"===t&&m,l=-1!==["top","bottom"].indexOf(t),y=!!i.flipVariations&&(l&&"start"===n&&f||l&&"end"===n&&p||!l&&"start"===n&&h||!l&&"end"===n&&m),_=!!i.flipVariationsByContent&&(l&&"start"===n&&p||l&&"end"===n&&f||!l&&"start"===n&&m||!l&&"end"===n&&h),g=y||_;(v||b||g)&&(e.flipped=!0,(v||b)&&(t=s[j+1]),g&&(n=function(e){return"end"===e?"start":"start"===e?"end":e}(n)),e.placement=t+(n?"-"+n:""),e.offsets.popper=o({},e.offsets.popper,eT(e.instance.popper,e.offsets.reference,e.placement)),e=eF(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var s=e.placement,t=s.split("-")[0],o=e.offsets,n=o.popper,a=o.reference,i=-1!==["left","right"].indexOf(t),r=-1===["top","left"].indexOf(t);return n[i?"left":"top"]=a[t]-(r?n[i?"width":"height"]:0),e.placement=W(s),e.offsets.popper=l(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!eM(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=S(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};tW(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(t.update)},this.update=tK(this.update.bind(this)),this.options=o({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=n&&n.jquery?n[0]:n,this.popper=s&&s.jquery?s[0]:s,this.options.modifiers={},Object.keys(o({},e.Defaults.modifiers,i.modifiers)).forEach(function(n){t.options.modifiers[n]=o({},e.Defaults.modifiers[n]||{},i.modifiers?i.modifiers[n]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return o({name:e},t.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&eX(e.onLoad)&&e.onLoad(t.reference,t.popper,t.options,e,t.state)}),this.update(),a=this.options.eventsEnabled,a&&this.enableEventListeners(),this.state.eventsEnabled=a}return tV(e,[{key:"update",value:function(){return tH.call(this)}},{key:"destroy",value:function(){return tP.call(this)}},{key:"enableEventListeners",value:function(){return tL.call(this)}},{key:"disableEventListeners",value:function(){return tN.call(this)}}]),e}(),P.Utils=("undefined"!=typeof window?window:global).PopperUtils,P.placements=e9,P.Defaults=eD;var e,t,F,P,U,ec,eO,tp,e9,eD,ei=P,w="dropdown",$="bs.dropdown",tD=e.default.fn[w],tz=new RegExp("38|40|27"),Z="disabled",a="show",e$="dropdown-menu-right",eW="hide.bs.dropdown",eU="hidden.bs.dropdown",ea="click.bs.dropdown.data-api",eq="keydown.bs.dropdown.data-api",eo='[data-toggle="dropdown"]',eu=".dropdown-menu",tT={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},tE={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},c=function(){function s(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var o=s.prototype;return o.toggle=function(){if(!this._element.disabled&&!e.default(this._element).hasClass(Z)){var t=e.default(this._menu).hasClass(a);s._clearMenus(),t||this.show(!0)}},o.show=function(i){if(void 0===i&&(i=!1),!(this._element.disabled||e.default(this._element).hasClass(Z)||e.default(this._menu).hasClass(a))){var o,r={relatedTarget:this._element},c=e.default.Event("show.bs.dropdown",r),n=s._getParentFromElement(this._element);if(e.default(n).trigger(c),!c.isDefaultPrevented()){if(!this._inNavbar&&i){if("undefined"==typeof ei)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");o=this._element,"parent"===this._config.reference?o=n:t.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.default(n).addClass("position-static"),this._popper=new ei(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===e.default(n).closest(".navbar-nav").length&&e.default(document.body).children().on("mouseover",null,e.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e.default(this._menu).toggleClass(a),e.default(n).toggleClass(a).trigger(e.default.Event("shown.bs.dropdown",r))}}},o.hide=function(){if(!this._element.disabled&&!e.default(this._element).hasClass(Z)&&e.default(this._menu).hasClass(a)){var t={relatedTarget:this._element},n=e.default.Event(eW,t),o=s._getParentFromElement(this._element);e.default(o).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),e.default(this._menu).toggleClass(a),e.default(o).toggleClass(a).trigger(e.default.Event(eU,t)))}},o.dispose=function(){e.default.removeData(this._element,$),e.default(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},o.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},o._addEventListeners=function(){var t=this;e.default(this._element).on("click.bs.dropdown",function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},o._getConfig=function(s){return s=n({},this.constructor.Default,e.default(this._element).data(),s),t.typeCheckConfig(w,s,this.constructor.DefaultType),s},o._getMenuElement=function(){if(!this._menu){var e=s._getParentFromElement(this._element);e&&(this._menu=e.querySelector(eu))}return this._menu},o._getPlacement=function(){var n=e.default(this._element.parentNode),t="bottom-start";return n.hasClass("dropup")?t=e.default(this._menu).hasClass(e$)?"top-end":"top-start":n.hasClass("dropright")?t="right-start":n.hasClass("dropleft")?t="left-start":e.default(this._menu).hasClass(e$)&&(t="bottom-end"),t},o._detectNavbar=function(){return e.default(this._element).closest(".navbar").length>0},o._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=n({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},o._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),n({},e,this._config.popperConfig)},s._jQueryInterface=function(t){return this.each(function(){var n=e.default(this).data($);if(n||(n=new s(this,"object"==typeof t?t:null),e.default(this).data($,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},s._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var l,d,o=[].slice.call(document.querySelectorAll(eo)),n=0,u=o.length;n0&&n--,40===t.which&&ndocument.documentElement.clientHeight,s||(this._element.style.overflowY="hidden"),this._element.classList.add(eB),o=t.getTransitionDurationFromElement(this._dialog),e.default(this._element).off(t.TRANSITION_END),e.default(this._element).one(t.TRANSITION_END,function(){n._element.classList.remove(eB),s||e.default(n._element).one(t.TRANSITION_END,function(){n._element.style.overflowY=""}).emulateTransitionEnd(n._element,o)}).emulateTransitionEnd(o),this._element.focus())},s._showElement=function(c){var s,o,r,n=this,i=e.default(this._element).hasClass(_),a=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),e.default(this._dialog).hasClass("modal-dialog-scrollable")&&a?a.scrollTop=0:this._element.scrollTop=0,i&&t.reflow(this._element),e.default(this._element).addClass(B),this._config.focus&&this._enforceFocus(),r=e.default.Event("shown.bs.modal",{relatedTarget:c}),s=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e.default(n._element).trigger(r)},i?(o=t.getTransitionDurationFromElement(this._dialog),e.default(this._dialog).one(t.TRANSITION_END,s).emulateTransitionEnd(o)):s()},s._enforceFocus=function(){var t=this;e.default(document).off(G).on(G,function(n){document!==n.target&&t._element!==n.target&&0===e.default(t._element).has(n.target).length&&t._element.focus()})},s._setEscapeEvent=function(){var t=this;this._isShown?e.default(this._element).on(td,function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()}):this._isShown||e.default(this._element).off(td)},s._setResizeEvent=function(){var t=this;this._isShown?e.default(window).on(tc,function(e){return t.handleUpdate(e)}):e.default(window).off(tc)},s._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(function(){e.default(document.body).removeClass(tt),t._resetAdjustments(),t._resetScrollbar(),e.default(t._element).trigger(ti)})},s._removeBackdrop=function(){this._backdrop&&(e.default(this._backdrop).remove(),this._backdrop=null)},s._showBackdrop=function(n){var i,a,r,s=this,o=e.default(this._element).hasClass(_)?_:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",o&&this._backdrop.classList.add(o),e.default(this._backdrop).appendTo(document.body),e.default(this._element).on(ep,function(e){s._ignoreBackdropClick?s._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===s._config.backdrop?s._triggerBackdropTransition():s.hide())}),o&&t.reflow(this._backdrop),e.default(this._backdrop).addClass(B),!n)return;if(!o)return void n();a=t.getTransitionDurationFromElement(this._backdrop),e.default(this._backdrop).one(t.TRANSITION_END,n).emulateTransitionEnd(a)}else!this._isShown&&this._backdrop?(e.default(this._backdrop).removeClass(B),i=function(){s._removeBackdrop(),n&&n()},e.default(this._element).hasClass(_)?(r=t.getTransitionDurationFromElement(this._backdrop),e.default(this._backdrop).one(t.TRANSITION_END,i).emulateTransitionEnd(r)):i()):n&&n()},s._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},s._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},s._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},tO={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},tx={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},d=function(){function o(e,t){if("undefined"==typeof ei)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var s=o.prototype;return s.enable=function(){this._isEnabled=!0},s.disable=function(){this._isEnabled=!1},s.toggleEnabled=function(){this._isEnabled=!this._isEnabled},s.toggle=function(n){if(this._isEnabled)if(n){var s=this.constructor.DATA_KEY,t=e.default(n.currentTarget).data(s);t||(t=new this.constructor(n.currentTarget,this._getDelegateConfig()),e.default(n.currentTarget).data(s,t)),t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(e.default(this.getTipElement()).hasClass(J))return void this._leave(null,this);this._enter(null,this)}},s.dispose=function(){clearTimeout(this._timeout),e.default.removeData(this.element,this.constructor.DATA_KEY),e.default(this.element).off(this.constructor.EVENT_KEY),e.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},s.show=function(){if(n=this,"none"===e.default(this.element).css("display"))throw new Error("Please use show on visible elements");if(o=e.default.Event(this.constructor.Event.SHOW),this.isWithContent()&&this._isEnabled){e.default(this.element).trigger(o);var n,s,o,i,a,r,l,d,u,c=t.findShadowRoot(this.element),h=e.default.contains(null!==c?c:this.element.ownerDocument.documentElement,this.element);if(o.isDefaultPrevented()||!h)return;s=this.getTipElement(),a=t.getUID(this.constructor.NAME),s.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&e.default(s).addClass(K),l="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,r=this._getAttachment(l),this.addAttachmentClass(r),d=this._getContainer(),e.default(s).data(this.constructor.DATA_KEY,this),e.default.contains(this.element.ownerDocument.documentElement,this.tip)||e.default(s).appendTo(d),e.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new ei(this.element,s,this._getPopperConfig(r)),e.default(s).addClass(J),e.default(s).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&e.default(document.body).children().on("mouseover",null,e.default.noop),i=function(){n.config.animation&&n._fixTransition();var t=n._hoverState;n._hoverState=null,e.default(n.element).trigger(n.constructor.Event.SHOWN),t===e6&&n._leave(null,n)},e.default(this.tip).hasClass(K)?(u=t.getTransitionDurationFromElement(this.tip),e.default(this.tip).one(t.TRANSITION_END,i).emulateTransitionEnd(u)):i()}},s.hide=function(o){var r,n=this,s=this.getTipElement(),i=e.default.Event(this.constructor.Event.HIDE),a=function(){n._hoverState!==E&&s.parentNode&&s.parentNode.removeChild(s),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e.default(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),o&&o()};e.default(this.element).trigger(i),!i.isDefaultPrevented()&&(e.default(s).removeClass(J),"ontouchstart"in document.documentElement&&e.default(document.body).children().off("mouseover",null,e.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e.default(this.tip).hasClass(K)?(r=t.getTransitionDurationFromElement(s),e.default(s).one(t.TRANSITION_END,a).emulateTransitionEnd(r)):a(),this._hoverState="")},s.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},s.isWithContent=function(){return Boolean(this.getTitle())},s.addAttachmentClass=function(t){e.default(this.getTipElement()).addClass("bs-tooltip-"+t)},s.getTipElement=function(){return this.tip=this.tip||e.default(this.config.template)[0],this.tip},s.setContent=function(){var t=this.getTipElement();this.setElementContent(e.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e.default(t).removeClass("fade show")},s.setElementContent=function(n,t){"object"!=typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=t8(t,this.config.whiteList,this.config.sanitizeFn)),n.html(t)):n.text(t):this.config.html?e.default(t).parent().is(n)||n.empty().append(t):n.text(e.default(t).text())},s.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},s._getPopperConfig=function(t){var e=this;return n({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},s._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=n({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},s._getContainer=function(){return!1===this.config.container?document.body:t.isElement(this.config.container)?e.default(this.config.container):e.default(document).find(this.config.container)},s._getAttachment=function(e){return t_[e.toUpperCase()]},s._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if("manual"!==n){var s=n===et?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o=n===et?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e.default(t.element).on(s,t.config.selector,function(e){return t._enter(e)}).on(o,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},e.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=n({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},s._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},s._enter=function(n,t){var s=this.constructor.DATA_KEY;(t=t||e.default(n.currentTarget).data(s))||(t=new this.constructor(n.currentTarget,this._getDelegateConfig()),e.default(n.currentTarget).data(s,t)),n&&(t._activeTrigger["focusin"===n.type?te:et]=!0),e.default(t.getTipElement()).hasClass(J)||t._hoverState===E?t._hoverState=E:(clearTimeout(t._timeout),t._hoverState=E,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===E&&t.show()},t.config.delay.show):t.show())},s._leave=function(n,t){var s=this.constructor.DATA_KEY;(t=t||e.default(n.currentTarget).data(s))||(t=new this.constructor(n.currentTarget,this._getDelegateConfig()),e.default(n.currentTarget).data(s,t)),n&&(t._activeTrigger["focusout"===n.type?te:et]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=e6,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===e6&&t.hide()},t.config.delay.hide):t.hide())},s._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},s._getConfig=function(s){var o=e.default(this.element).data();return Object.keys(o).forEach(function(e){-1!==t5.indexOf(e)&&delete o[e]}),"number"==typeof(s=n({},this.constructor.Default,o,"object"==typeof s&&s?s:{})).delay&&(s.delay={show:s.delay,hide:s.delay}),"number"==typeof s.title&&(s.title=s.title.toString()),"number"==typeof s.content&&(s.content=s.content.toString()),t.typeCheckConfig(tf,s,this.constructor.DefaultType),s.sanitize&&(s.template=t8(s.template,s.whiteList,s.sanitizeFn)),s},s._getDelegateConfig=function(){var e,t={};if(this.config)for(e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},s._cleanTipClass=function(){var n=e.default(this.getTipElement()),t=n.attr("class").match(tg);null!==t&&t.length&&n.removeClass(t.join(""))},s._handlePopperPlacementChange=function(e){this.tip=e.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},s._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e.default(t).removeClass(K),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var s=e.default(this),n=s.data(ex),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,i),s.data(ex,n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},i(o,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return tw}},{key:"NAME",get:function(){return tf}},{key:"DATA_KEY",get:function(){return ex}},{key:"Event",get:function(){return tx}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return tO}}]),o}();e.default.fn.tooltip=d._jQueryInterface,e.default.fn.tooltip.Constructor=d,e.default.fn.tooltip.noConflict=function(){return e.default.fn.tooltip=t7,d._jQueryInterface};var e3="bs.popover",tk=e.default.fn.popover,tA=new RegExp("(^|\\s)bs-popover\\S+","g"),tS=n({},d.Default,{placement:"right",trigger:"click",content:"",template:''}),tM=n({},d.DefaultType,{content:"(string|element|function)"}),tF={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},q=function(a){function t(){return a.apply(this,arguments)||this}o=a,(s=t).prototype=Object.create(o.prototype),s.prototype.constructor=s,e4(s,o);var s,o,n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.addAttachmentClass=function(t){e.default(this.getTipElement()).addClass("bs-popover-"+t)},n.getTipElement=function(){return this.tip=this.tip||e.default(this.config.template)[0],this.tip},n.setContent=function(){var t,n=e.default(this.getTipElement());this.setElementContent(n.find(".popover-header"),this.getTitle()),t=this._getContent(),"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(n.find(".popover-body"),t),n.removeClass("fade show")},n._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n._cleanTipClass=function(){var n=e.default(this.getTipElement()),t=n.attr("class").match(tA);null!==t&&t.length>0&&n.removeClass(t.join(""))},t._jQueryInterface=function(n){return this.each(function(){var s=e.default(this).data(e3),o="object"==typeof n?n:null;if((s||!/dispose|hide/.test(n))&&(s||(s=new t(this,o),e.default(this).data(e3,s)),"string"==typeof n)){if("undefined"==typeof s[n])throw new TypeError('No method named "'+n+'"');s[n]()}})},i(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return tS}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return e3}},{key:"Event",get:function(){return tF}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return tM}}]),t}(d);e.default.fn.popover=q._jQueryInterface,e.default.fn.popover.Constructor=q,e.default.fn.popover.noConflict=function(){return e.default.fn.popover=tk,q._jQueryInterface};var h="scrollspy",eh="bs.scrollspy",no=e.default.fn[h],u="active",eC="position",ek=".nav, .list-group",eS={offset:10,method:"auto",target:""},tI={offset:"number",method:"string",target:"(string|element)"},H=function(){function o(t,n){var s=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e.default(this._scrollElement).on("scroll.bs.scrollspy",function(e){return s._process(e)}),this.refresh(),this._process()}var s=o.prototype;return s.refresh=function(){var n=this,o=this._scrollElement===this._scrollElement.window?"offset":eC,s="auto"===this._config.method?o:this._config.method,i=s===eC?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(r){var n,a,o=t.getSelectorFromElement(r);return(o&&(n=document.querySelector(o)),n)&&(a=n.getBoundingClientRect(),a.width||a.height)?[e.default(n)[s]().top+i,o]:null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(e){n._offsets.push(e[0]),n._targets.push(e[1])})},s.dispose=function(){e.default.removeData(this._element,eh),e.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},s._getConfig=function(s){if("string"!=typeof(s=n({},eS,"object"==typeof s&&s?s:{})).target&&t.isElement(s.target)){var o=e.default(s.target).attr("id");o||(o=t.getUID(h),e.default(s.target).attr("id",o)),s.target="#"+o}return t.typeCheckConfig(h,s,tI),s},s._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},s._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},s._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},s._process=function(){var e,n,t=this._getScrollTop()+this._config.offset,s=this._getScrollHeight(),o=this._config.offset+s-this._getOffsetHeight();if(this._scrollHeight!==s&&this.refresh(),t>=o)n=this._targets[this._targets.length-1],this._activeTarget!==n&&this._activate(n);else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&("undefined"==typeof this._offsets[e+1]||t li > .active",k=function(){function n(e){this._element=e}var s=n.prototype;return s.show=function(){if(i=this,!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e.default(this._element).hasClass(z)||e.default(this._element).hasClass("disabled"))){var n,o,i,a,r,c,d,s=e.default(this._element).closest(".nav, .list-group")[0],l=t.getSelectorFromElement(this._element);s&&(d="UL"===s.nodeName||"OL"===s.nodeName?eJ:eZ,n=(n=e.default.makeArray(e.default(s).find(d)))[n.length-1]),a=e.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=e.default.Event("show.bs.tab",{relatedTarget:n}),(n&&e.default(n).trigger(a),e.default(this._element).trigger(r),!r.isDefaultPrevented()&&!a.isDefaultPrevented())&&(l&&(o=document.querySelector(l)),this._activate(this._element,s),c=function(){var t=e.default.Event("hidden.bs.tab",{relatedTarget:i._element}),s=e.default.Event("shown.bs.tab",{relatedTarget:n});e.default(n).trigger(t),e.default(i._element).trigger(s)},o?this._activate(o,o.parentNode,c):c())}},s.dispose=function(){e.default.removeData(this._element,ed),this._element=null},s._activate=function(l,s,i){var a,r=this,n=(!s||"UL"!==s.nodeName&&"OL"!==s.nodeName?e.default(s).children(eZ):e.default(s).find(eJ))[0],c=i&&n&&e.default(n).hasClass(eY),o=function(){return r._transitionComplete(l,n,i)};n&&c?(a=t.getTransitionDurationFromElement(n),e.default(n).removeClass(eQ).one(t.TRANSITION_END,o).emulateTransitionEnd(a)):o()},s._transitionComplete=function(n,o,a){if(o){e.default(o).removeClass(z);var s,i,c,r=e.default(o.parentNode).find("> .dropdown-menu .active")[0];r&&e.default(r).removeClass(z),"tab"===o.getAttribute("role")&&o.setAttribute("aria-selected",!1)}e.default(n).addClass(z),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!0),t.reflow(n),n.classList.contains(eY)&&n.classList.add(eQ),s=n.parentNode,(s&&"LI"===s.nodeName&&(s=s.parentNode),s&&e.default(s).hasClass("dropdown-menu"))&&(i=e.default(n).closest(".dropdown")[0],i&&(c=[].slice.call(i.querySelectorAll(".dropdown-toggle")),e.default(c).addClass(z)),n.setAttribute("aria-expanded",!0)),a&&a()},n._jQueryInterface=function(t){return this.each(function(){var o=e.default(this),s=o.data(ed);if(s||(s=new n(this),o.data(ed,s)),"string"==typeof t){if("undefined"==typeof s[t])throw new TypeError('No method named "'+t+'"');s[t]()}})},i(n,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),n}();e.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',function(t){t.preventDefault(),k._jQueryInterface.call(e.default(this),"show")}),e.default.fn.tab=k._jQueryInterface,e.default.fn.tab.Constructor=k,e.default.fn.tab.noConflict=function(){return e.default.fn.tab=t$,k._jQueryInterface};var ev="bs.toast",tQ=e.default.fn.toast,tl="hide",R="show",t6="showing",th="click.dismiss.bs.toast",tm={animation:!0,autohide:!0,delay:500},ns={animation:"boolean",autohide:"boolean",delay:"number"},Y=function(){function o(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners()}var s=o.prototype;return s.show=function(){var s,i,n=this,o=e.default.Event("show.bs.toast");e.default(this._element).trigger(o),!o.isDefaultPrevented()&&(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),s=function(){n._element.classList.remove(t6),n._element.classList.add(R),e.default(n._element).trigger("shown.bs.toast"),n._config.autohide&&(n._timeout=setTimeout(function(){n.hide()},n._config.delay))},this._element.classList.remove(tl),t.reflow(this._element),this._element.classList.add(t6),this._config.animation?(i=t.getTransitionDurationFromElement(this._element),e.default(this._element).one(t.TRANSITION_END,s).emulateTransitionEnd(i)):s())},s.hide=function(){if(this._element.classList.contains(R)){var t=e.default.Event("hide.bs.toast");e.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},s.dispose=function(){this._clearTimeout(),this._element.classList.contains(R)&&this._element.classList.remove(R),e.default(this._element).off(th),e.default.removeData(this._element,ev),this._element=null,this._config=null},s._getConfig=function(s){return s=n({},tm,e.default(this._element).data(),"object"==typeof s&&s?s:{}),t.typeCheckConfig("toast",s,this.constructor.DefaultType),s},s._setListeners=function(){var t=this;e.default(this._element).on(th,'[data-dismiss="toast"]',function(){return t.hide()})},s._close=function(){var o,n=this,s=function(){n._element.classList.add(tl),e.default(n._element).trigger("hidden.bs.toast")};this._element.classList.remove(R),this._config.animation?(o=t.getTransitionDurationFromElement(this._element),e.default(this._element).one(t.TRANSITION_END,s).emulateTransitionEnd(o)):s()},s._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},o._jQueryInterface=function(t){return this.each(function(){var s=e.default(this),n=s.data(ev);if(n||(n=new o(this,"object"==typeof t&&t),s.data(ev,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}})},i(o,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"DefaultType",get:function(){return ns}},{key:"Default",get:function(){return tm}}]),o}();e.default.fn.toast=Y._jQueryInterface,e.default.fn.toast.Constructor=Y,e.default.fn.toast.noConflict=function(){return e.default.fn.toast=tQ,Y._jQueryInterface},s.Alert=b,s.Button=D,s.Carousel=f,s.Collapse=A,s.Dropdown=c,s.Modal=M,s.Popover=q,s.Scrollspy=H,s.Tab=k,s.Toast=Y,s.Tooltip=d,s.Util=t,Object.defineProperty(s,"__esModule",{value:!0})});let mouseoverTimer,lastTouchTimestamp;const prefetches=new Set,prefetchElement=document.createElement("link"),isSupported=prefetchElement.relList&&prefetchElement.relList.supports&&prefetchElement.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,allowQueryString="instantAllowQueryString"in document.body.dataset,allowExternalLinks="instantAllowExternalLinks"in document.body.dataset,useWhitelist="instantWhitelist"in document.body.dataset,mousedownShortcut="instantMousedownShortcut"in document.body.dataset,DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION=1111;let delayOnHover=65,useMousedown=!1,useMousedownOnly=!1,useViewport=!1;if("instantIntensity"in document.body.dataset){const e=document.body.dataset.instantIntensity;if(e.substr(0,"mousedown".length)=="mousedown")useMousedown=!0,e=="mousedown-only"&&(useMousedownOnly=!0);else if(e.substr(0,"viewport".length)=="viewport")navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||(e=="viewport"?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(useViewport=!0):e=="viewport-all"&&(useViewport=!0));else{const t=parseInt(e);isNaN(t)||(delayOnHover=t)}}if(isSupported){const e={capture:!0,passive:!0};if(useMousedownOnly||document.addEventListener("touchstart",touchstartListener,e),useMousedown?mousedownShortcut||document.addEventListener("mousedown",mousedownListener,e):document.addEventListener("mouseover",mouseoverListener,e),mousedownShortcut&&document.addEventListener("mousedown",mousedownShortcutListener,e),useViewport){let e;window.requestIdleCallback?e=e=>{requestIdleCallback(e,{timeout:1500})}:e=e=>{e()},e(()=>{const e=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting){const n=t.target;e.unobserve(n),preload(n.href)}})});document.querySelectorAll("a").forEach(t=>{isPreloadable(t)&&e.observe(t)})})}}function touchstartListener(t){lastTouchTimestamp=performance.now();const e=t.target.closest("a");if(!isPreloadable(e))return;preload(e.href)}function mouseoverListener(t){if(performance.now()-lastTouchTimestamp{preload(e.href),mouseoverTimer=void 0},delayOnHover)}function mousedownListener(t){const e=t.target.closest("a");if(!isPreloadable(e))return;preload(e.href)}function mouseoutListener(e){if(e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a"))return;mouseoverTimer&&(clearTimeout(mouseoverTimer),mouseoverTimer=void 0)}function mousedownShortcutListener(e){if(performance.now()-lastTouchTimestamp1||e.metaKey||e.ctrlKey)return;if(!t)return;t.addEventListener("click",function(e){if(e.detail==1337)return;e.preventDefault()},{capture:!0,passive:!1,once:!0});const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});t.dispatchEvent(n)}function isPreloadable(e){if(!e||!e.href)return;if(useWhitelist&&!("instant"in e.dataset))return;if(!allowExternalLinks&&e.origin!=location.origin&&!("instant"in e.dataset))return;if(!["http:","https:"].includes(e.protocol))return;if(e.protocol=="http:"&&location.protocol=="https:")return;if(!allowQueryString&&e.search&&!("instant"in e.dataset))return;if(e.hash&&e.pathname+e.search==location.pathname+location.search)return;if("noInstant"in e.dataset)return;return!0}function preload(e){if(prefetches.has(e))return;const t=document.createElement("link");t.rel="prefetch",t.href=e,document.head.appendChild(t),prefetches.add(e)} \ No newline at end of file diff --git a/js/wowchemy-headroom.c251366b4128fd5e6b046d4c97a62a51.js b/js/wowchemy-headroom.c251366b4128fd5e6b046d4c97a62a51.js new file mode 100644 index 00000000..a3b69c0f --- /dev/null +++ b/js/wowchemy-headroom.c251366b4128fd5e6b046d4c97a62a51.js @@ -0,0 +1,6 @@ +var B=Object.create;var T=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var Y=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var j=(n,o,l,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of L(o))!M.call(n,s)&&s!==l&&T(n,s,{get:()=>o[s],enumerable:!(u=E(o,s))||u.enumerable});return n};var x=(n,o,l)=>(l=n!=null?B(z(n)):{},j(o||!n||!n.__esModule?T(l,"default",{value:n,enumerable:!0}):l,n));var O=Y((C,v)=>{(function(n,o){typeof C=="object"&&typeof v<"u"?v.exports=o():typeof define=="function"&&define.amd?define(o):(n=n||self).Headroom=o()})(C,function(){"use strict";function n(){return typeof window<"u"}function o(t){return function(e){return e&&e.document&&function(d){return d.nodeType===9}(e.document)}(t)?function(e){var d=e.document,a=d.body,c=d.documentElement;return{scrollHeight:function(){return Math.max(a.scrollHeight,c.scrollHeight,a.offsetHeight,c.offsetHeight,a.clientHeight,c.clientHeight)},height:function(){return e.innerHeight||c.clientHeight||a.clientHeight},scrollY:function(){return e.pageYOffset!==void 0?e.pageYOffset:(c||a.parentNode||a).scrollTop}}}(t):function(e){return{scrollHeight:function(){return Math.max(e.scrollHeight,e.offsetHeight,e.clientHeight)},height:function(){return Math.max(e.offsetHeight,e.clientHeight)},scrollY:function(){return e.scrollTop}}}(t)}function l(t,e,d){var a,c=function(){var r=!1;try{var h={get passive(){r=!0}};window.addEventListener("test",h,h),window.removeEventListener("test",h,h)}catch{r=!1}return r}(),p=!1,f=o(t),m=f.scrollY(),i={};function b(){var r=Math.round(f.scrollY()),h=f.height(),g=f.scrollHeight();i.scrollY=r,i.lastScrollY=m,i.direction=me.tolerance[i.direction],d(i),m=r,p=!1}function H(){p||(p=!0,a=requestAnimationFrame(b))}var y=!!c&&{passive:!0,capture:!1};return t.addEventListener("scroll",H,y),b(),{destroy:function(){cancelAnimationFrame(a),t.removeEventListener("scroll",H,y)}}}function u(t){return t===Object(t)?t:{down:t,up:t}}function s(t,e){e=e||{},Object.assign(this,s.options,e),this.classes=Object.assign({},s.options.classes,e.classes),this.elem=t,this.tolerance=u(this.tolerance),this.offset=u(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=l(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return t.direction==="down"&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return t.direction==="up"&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(e){return this.classList.contains(e)},this.elem)},update:function(t){t.isOutOfBounds||this.frozen!==!0&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:n()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(n()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s})});var w=x(O());document.addEventListener("DOMContentLoaded",function(){let n=JSON.parse(document.getElementById("page-data").textContent);console.debug(`Use headroom on this page? ${n.use_headroom}`);let o=document.querySelector("header");o&&n.use_headroom===!0&&new w.default(o).init()}); +/*! + * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it + * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js + * License: MIT + */ diff --git a/js/wowchemy-init.min.2ed908358299dd7ab553faae685c746c.js b/js/wowchemy-init.min.2ed908358299dd7ab553faae685c746c.js new file mode 100644 index 00000000..42c0ed32 --- /dev/null +++ b/js/wowchemy-init.min.2ed908358299dd7ab553faae685c746c.js @@ -0,0 +1,6 @@ +/*! Wowchemy v5.5.0 | https://wowchemy.com/ */ +/*! Copyright 2016-present George Cushen (https://georgecushen.com/) */ +/*! License: https://github.com/wowchemy/wowchemy-hugo-themes/blob/main/LICENSE.md */ + +; +(()=>{(()=>{var t,n,e=document.body;function s(){return parseInt(localStorage.getItem("wcTheme")||2)}function o(){return Boolean(window.wc.darkLightEnabled)}function i(){if(!o())return console.debug("User theming disabled."),{isDarkTheme:window.wc.isSiteThemeDark,themeMode:window.wc.isSiteThemeDark?1:0};console.debug("User theming enabled.");let t,n=s();switch(console.debug(`User's theme variation: ${n}`),n){case 0:t=!1;break;case 1:t=!0;break;default:window.matchMedia("(prefers-color-scheme: dark)").matches?t=!0:window.matchMedia("(prefers-color-scheme: light)").matches?t=!1:t=window.wc.isSiteThemeDark;break}return t&&!e.classList.contains("dark")?(console.debug("Applying Wowchemy dark theme"),document.body.classList.add("dark")):!t&&e.classList.contains("dark")&&(console.debug("Applying Wowchemy light theme"),document.body.classList.remove("dark")),{isDarkTheme:t,themeMode:n}}t="minimal",n=!1,window.wc={darkLightEnabled:t,isSiteThemeDark:n},window.netlifyIdentity&&window.netlifyIdentity.on("init",e=>{e||window.netlifyIdentity.on("login",()=>{document.location.href="/admin/"})}),i(),window.PlotlyConfig={MathJaxConfig:"local"}})()})() \ No newline at end of file diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 00000000..e75f07f3 --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1,18 @@ +{ + "name": "GMT 中文社区", + "short_name": "GMT 中文社区", + "lang": "zh-Hans", + "theme_color": "#1565c0", + "background_color": "#1565c0", + "icons": [{ + "src": "/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_192x192_fill_lanczos_center_3.png", + "sizes": "192x192", + "type": "image/png" + }, { + "src": "/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png", + "sizes": "512x512", + "type": "image/png" + }], + "display": "standalone", + "start_url": "/?utm_source=web_app_manifest" +} diff --git a/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_1200x0_resize_lanczos_3.png b/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_1200x0_resize_lanczos_3.png new file mode 100644 index 00000000..205f6aeb Binary files /dev/null and b/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_1200x0_resize_lanczos_3.png differ diff --git a/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_400x0_resize_lanczos_3.png b/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_400x0_resize_lanczos_3.png new file mode 100644 index 00000000..e553d838 Binary files /dev/null and b/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_400x0_resize_lanczos_3.png differ diff --git a/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_800x0_resize_lanczos_3.png b/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_800x0_resize_lanczos_3.png new file mode 100644 index 00000000..5af60f40 Binary files /dev/null and b/media/GMT_logo_hu53ec7cfb897c74ce4adc283838c683db_26648_800x0_resize_lanczos_3.png differ diff --git a/media/QQ-group1.png b/media/QQ-group1.png new file mode 100644 index 00000000..32168aab Binary files /dev/null and b/media/QQ-group1.png differ diff --git a/media/QQ-group2.png b/media/QQ-group2.png new file mode 100644 index 00000000..035b297f Binary files /dev/null and b/media/QQ-group2.png differ diff --git a/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_180x180_fill_lanczos_center_3.png b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_180x180_fill_lanczos_center_3.png new file mode 100644 index 00000000..f89fc128 Binary files /dev/null and b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_180x180_fill_lanczos_center_3.png differ diff --git a/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_192x192_fill_lanczos_center_3.png b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_192x192_fill_lanczos_center_3.png new file mode 100644 index 00000000..b14da8da Binary files /dev/null and b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_192x192_fill_lanczos_center_3.png differ diff --git a/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_32x32_fill_lanczos_center_3.png b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_32x32_fill_lanczos_center_3.png new file mode 100644 index 00000000..269ee020 Binary files /dev/null and b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_32x32_fill_lanczos_center_3.png differ diff --git a/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png new file mode 100644 index 00000000..d05e3a32 Binary files /dev/null and b/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png differ diff --git a/publication_types/index.html b/publication_types/index.html new file mode 100644 index 00000000..1ae3bfb8 --- /dev/null +++ b/publication_types/index.html @@ -0,0 +1,955 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Publication_types | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

Publication_types

+ + + + +
+ + + +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/publication_types/index.xml b/publication_types/index.xml new file mode 100644 index 00000000..a5cfe825 --- /dev/null +++ b/publication_types/index.xml @@ -0,0 +1,16 @@ + + + + Publication_types | GMT 中文社区 + https://gmt-china.org/publication_types/ + + Publication_types + Wowchemy (https://wowchemy.com)zh-Hans + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Publication_types + https://gmt-china.org/publication_types/ + + + + diff --git a/publication_types/page/1/index.html b/publication_types/page/1/index.html new file mode 100644 index 00000000..945ceae9 --- /dev/null +++ b/publication_types/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/publication_types/ + + + + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 00000000..845a9a55 --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +User-agent: * + +Sitemap: https://gmt-china.org/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..63aac422 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,89 @@ + + + + + + https://gmt-china.org/authors/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/categories/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/category/gmt%E6%8A%80%E5%B7%A7/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/blog/vscode-usage/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/tag/linux/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/tag/mac/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/tags/2022-05-06T00:00:00+00:00weekly + + https://gmt-china.org/tag/windows/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/blog/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/authors/%E5%88%98%E7%8F%A0%E5%A6%B9/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/authors/%E8%B5%B5%E5%BF%97%E8%BF%9C/2020-02-19T00:00:00+00:00weekly + + https://gmt-china.org/blog/national-geographic-database/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/authors/eyou/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/authors/%E9%99%88%E7%AE%AB%E7%BF%B0/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/category/%E5%9C%B0%E5%AD%A6%E6%95%B0%E6%8D%AE/2022-09-08T00:00:00+00:00weekly + + https://gmt-china.org/blog/user-directory-warning/2017-10-27T00:00:00+00:00weekly + + https://gmt-china.org/blog/gud-20171017/2017-10-17T00:00:00+00:00weekly + + https://gmt-china.org/authors/seisman/2019-02-13T00:00:00+00:00weekly + + https://gmt-china.org/tag/%E8%81%9A%E9%A4%90/2017-10-17T00:00:00+00:00weekly + + https://gmt-china.org/authors/%E7%8E%8B%E4%BA%AE/2022-05-17T00:00:00+00:00weekly + + https://gmt-china.org/category/%E6%96%B0%E9%97%BB%E5%8A%A8%E6%80%81/2017-10-17T00:00:00+00:00weekly + + https://gmt-china.org/authors/seispider/2017-09-14T00:00:00+00:00weekly + + https://gmt-china.org/category/%E7%A7%91%E7%A0%94%E5%B7%A5%E5%85%B7/2017-09-14T00:00:00+00:00weekly + + https://gmt-china.org/blog/google-maps-elevation-api/2017-09-14T00:00:00+00:00weekly + + https://gmt-china.org/tag/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/2017-09-14T00:00:00+00:00weekly + + https://gmt-china.org/blog/community-guide/2017-08-23T00:00:00+00:00weekly + + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E8%A7%84%E8%8C%83/2022-05-17T00:00:00+00:00weekly + + https://gmt-china.org/blog/instructions-for-authors/2022-05-17T00:00:00+00:00weekly + + https://gmt-china.org/blog/sci-hub/2017-08-12T00:00:00+00:00weekly + + https://gmt-china.org/tag/%E6%96%87%E7%8C%AE%E4%B8%8B%E8%BD%BD/2017-08-12T00:00:00+00:00weekly + + https://gmt-china.org/tag/gmt-user-dinner/2016-09-27T00:00:00+00:00weekly + + https://gmt-china.org/blog/gud-20160921/2016-09-27T00:00:00+00:00weekly + + https://gmt-china.org/authors/%E7%BD%97%E5%A8%9C/2016-09-27T00:00:00+00:00weekly + + https://gmt-china.org/category/%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81/2022-05-06T00:00:00+00:00weekly + + https://gmt-china.org/blog/gmtcon-20160921/2016-09-25T00:00:00+00:00weekly + + https://gmt-china.org/tag/%E5%9F%B9%E8%AE%AD/2016-09-25T00:00:00+00:00weekly + + https://gmt-china.org/blog/gud-20160628/2016-09-24T00:00:00+00:00weekly + + https://gmt-china.org/blog/mirror-site-founded/2022-05-06T00:00:00+00:00weekly + + https://gmt-china.org/tag/%E9%95%9C%E5%83%8F/2022-05-06T00:00:00+00:00weekly + + https://gmt-china.org/blog/gmt-china-community-founded/2019-02-13T00:00:00+00:00weekly + + https://gmt-china.org/publication_types/weekly diff --git a/tag/gmt-user-dinner/index.html b/tag/gmt-user-dinner/index.html new file mode 100644 index 00000000..6e992575 --- /dev/null +++ b/tag/gmt-user-dinner/index.html @@ -0,0 +1,1165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GMT User Dinner | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

GMT User Dinner

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区第二次线下聚餐 +
+ + + +
+ GMT中文社区在湖北武汉组织了第二次线下聚餐。 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区首次线下聚餐 +
+ + + +
+

2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。

+
+
+ + + + + + +
+
+ + + + + GMT中文社区首次线下聚餐 + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tag/gmt-user-dinner/index.xml b/tag/gmt-user-dinner/index.xml new file mode 100644 index 00000000..683e931d --- /dev/null +++ b/tag/gmt-user-dinner/index.xml @@ -0,0 +1,116 @@ + + + + GMT User Dinner | GMT 中文社区 + https://gmt-china.org/tag/gmt-user-dinner/ + + GMT User Dinner + Wowchemy (https://wowchemy.com)zh-HansTue, 27 Sep 2016 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + GMT User Dinner + https://gmt-china.org/tag/gmt-user-dinner/ + + + + GMT中文社区第二次线下聚餐 + https://gmt-china.org/blog/gud-20160921/ + Tue, 27 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160921/ + <p>2016年9月21日,借GMT中文社区首次线下培训契机,在社区创始人田冬冬博士和GMT群管理员 +刘珠妹老师的号召下,GMT中文社区在湖北武汉组织了第二次线下聚餐(GMT User Dinner,简称GUD), +四位群管理员和来自河北、福建、安徽、甘肃、湖北等地的共16位社区成员参加了此次聚会。</p> +<p>聚会伊始,杨萍带来了兰州似火的热情,为大家奉上美味糖果牦牛肉,大红色的包装纸 +被单斌老师认成喜糖。红色代表着喜庆,象征着今天大家有缘聚在一起,也是一种皆大 +欢喜的团圆。随后大家自我介绍了自己的群内ID和真实姓名,社区成员对彼此的学习情况、 +工作经历、研究领域等有了初步认识。稍后,社区成员商讨了GMT社区网站的美观设计、 +腾讯网盘容量已扩容性问题、相同问题反复提问和解答等。针对上述内容,田博士希望 +将来可以重新设计一个漂亮的社区logo,建议把GMT社区内容重新移植回QQ群文件中, +并希冀整理群问题的工作可以尽快开展,因此再次号召更多志愿者加入到GMT社区的管理 +和维护工作。稍后,大家谈到了亘古不变的话题“虎哥究竟是男是女”,众人仁者见 +仁智者见智,各持己见,瞬间聚会气氛达到了高潮,可惜的是虎哥本人并不在现场!</p> +<p>随后田博士在师弟和美女的陪同下,参观了位于东湖之滨、珞珈山下、拥有百年历史的 +全国重点高校—国立武汉大学。走出武大校园后,随后乘船游览了国家5A级旅游景区—东湖。 +此次聚会活动虎哥没有参加,但虎哥热情依在,虎哥看完聚会照片,和大家调侃了“桂花山药” +美味的一盘菜,并押宝5毛,最后在虎哥强烈邀约下,筹备了第三次线下聚餐活动。</p> +<p>GMT社区线下聚会在轻松愉快的氛围中结束,此次聚会谈论话题广泛,但又不失主题性, +为GMT社区成员之间深入交流提供了一个很好的平台,促进了GMT社区的稳健成长。 +遥祝GMT中文社区像东湖一样,可以永葆原创魅力,又像武汉大学一样,亦可承载 +一路的历史、厚重、辉煌! “相见时难别亦难”,美好的聚会终有一别,这次聚会虽然短暂, +但短暂的聚会让我们会加倍的去珍惜,希望下一次聚会再团聚!</p> + + + + + + + + + + + + + + + + +<figure id="figure-参会人员从左往右依次为章婷湖北省地震局刘珠妹中国地震局地震研究所王丽霞中国地震局兰州地震研究所杨萍中国地震局兰州地震研究所郑海刚安徽省地震局谢小晋中国地质大学-武汉贾媛山东省地震局杨锦玲福建省地震局田冬冬中国科学技术大学肖晓武汉大学赵志远河北省地震局刘旭耀中国地质大学-武汉罗娜河北省地震局邓明莉中国科学院测量与地球物理研究所刘成利中国地质大学-武汉单斌中国地质大学-武汉"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉)" srcset=" + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp 400w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_27d3f8df1552a6e384205973889567e3.webp 760w, + /blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/gud-20160921/GUD-20160921_huafb73f337da936cf3b994b5d2cd7b25b_837863_7f14ff346008b86ae8d679eb5d33e560.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 参会人员从左往右依次为:章婷(湖北省地震局)、刘珠妹(中国地震局地震研究所)、王丽霞(中国地震局兰州地震研究所)、杨萍(中国地震局兰州地震研究所)、郑海刚(安徽省地震局)、谢小晋(中国地质大学-武汉)、贾媛(山东省地震局)、杨锦玲(福建省地震局)、田冬冬(中国科学技术大学)、肖晓(武汉大学)、赵志远(河北省地震局)、刘旭耀(中国地质大学-武汉)、罗娜(河北省地震局)、邓明莉(中国科学院测量与地球物理研究所)、刘成利(中国地质大学-武汉)、单斌(中国地质大学-武汉) + </figcaption></figure> + + + + + GMT中文社区首次线下聚餐 + https://gmt-china.org/blog/gud-20160628/ + Sat, 24 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gud-20160628/ + <p>2016年6月28日,GMT中文社区在北京举行了首次GMT用户线下聚餐(GMT User Dinner,简称GUD)。</p> +<p>6月27日至29日,很多GMT用户参加了在中国科学院地质与地球物理研究所举办的 +“首届中国区域地震学参考模型交流会”。 +社区创始人田冬冬提议借此机会,举行社区的第一次线下聚会。</p> +<p>6月28日晚,参与聚会的GMT社区用户相约前往北京北辰西路的芝麻花餐厅聚会。 +在聚会上,社区成员相互认识,对彼此的研究领域、GMT 学习和社区的发展进行了交流和讨论。</p> + + + + + + + + + + + + + + + + +<figure id="figure-左至右依次为李佳威中国地震局地球物理研究所王志伟中国地震局地质研究所田冬冬中国科学技术大学王亮桂林理工大学李君中国地震局第二监测中心"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心" srcset=" + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp 400w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_74d7c5e9fd0680d30beaa0cc9967827b.webp 760w, + /blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20160628/GUD-20160628_huc804dcc579c6cbb80b51109e35ac1af5_240262_4ec50d67fd775edbe75fe70531d7985a.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 左至右依次为:李佳威(中国地震局地球物理研究所)、王志伟(中国地震局地质研究所)、田冬冬(中国科学技术大学)、王亮(桂林理工大学)、李君(中国地震局第二监测中心 + </figcaption></figure> + + + + diff --git a/tag/gmt-user-dinner/page/1/index.html b/tag/gmt-user-dinner/page/1/index.html new file mode 100644 index 00000000..cf10d8c5 --- /dev/null +++ b/tag/gmt-user-dinner/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/gmt-user-dinner/ + + + + + + diff --git a/tag/linux/index.html b/tag/linux/index.html new file mode 100644 index 00000000..eb579bd2 --- /dev/null +++ b/tag/linux/index.html @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linux | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

Linux

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT脚本执行利器——VS Code +
+ + + +
+ Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且 +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tag/linux/index.xml b/tag/linux/index.xml new file mode 100644 index 00000000..54025b3f --- /dev/null +++ b/tag/linux/index.xml @@ -0,0 +1,297 @@ + + + + Linux | GMT 中文社区 + https://gmt-china.org/tag/linux/ + + Linux + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Linux + https://gmt-china.org/tag/linux/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + diff --git a/tag/linux/page/1/index.html b/tag/linux/page/1/index.html new file mode 100644 index 00000000..cd44022d --- /dev/null +++ b/tag/linux/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/linux/ + + + + + + diff --git a/tag/mac/index.html b/tag/mac/index.html new file mode 100644 index 00000000..fc461440 --- /dev/null +++ b/tag/mac/index.html @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mac | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

Mac

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT脚本执行利器——VS Code +
+ + + +
+ Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且 +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tag/mac/index.xml b/tag/mac/index.xml new file mode 100644 index 00000000..1c0ad34d --- /dev/null +++ b/tag/mac/index.xml @@ -0,0 +1,297 @@ + + + + Mac | GMT 中文社区 + https://gmt-china.org/tag/mac/ + + Mac + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Mac + https://gmt-china.org/tag/mac/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + diff --git a/tag/mac/page/1/index.html b/tag/mac/page/1/index.html new file mode 100644 index 00000000..a1bb7c6b --- /dev/null +++ b/tag/mac/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/mac/ + + + + + + diff --git a/tag/windows/index.html b/tag/windows/index.html new file mode 100644 index 00000000..1084cd2a --- /dev/null +++ b/tag/windows/index.html @@ -0,0 +1,1160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

Windows

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT脚本执行利器——VS Code +
+ + + +
+ Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且 +
+
+ + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT5在Windows下提示无法创建用户目录的解决办法 +
+ + + +
+ 如何解决“无法创建用户目录”的问题? +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tag/windows/index.xml b/tag/windows/index.xml new file mode 100644 index 00000000..df4085af --- /dev/null +++ b/tag/windows/index.xml @@ -0,0 +1,320 @@ + + + + Windows | GMT 中文社区 + https://gmt-china.org/tag/windows/ + + Windows + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Windows + https://gmt-china.org/tag/windows/ + + + + GMT脚本执行利器——VS Code + https://gmt-china.org/blog/vscode-usage/ + Wed, 19 Feb 2020 00:00:00 +0000 + https://gmt-china.org/blog/vscode-usage/ + <p>Visual Studio Code,简称vscode,是微软推出的一款免费、轻量且功能强大的编辑器。vscode除一键执行、语法高亮、分屏显示外,还可实现bat/bash脚本的顺滑切换运行、jpg/gif/pdf等成图结果实时预览、脚本报错信息显示,非常适合全平台下执行GMT脚本。</p> +<p><strong>注:vscode是跨平台软件,支持linux/Mac/Windows平台。本文以windows为例介绍其使用方法。</strong></p> +<h2 id="vscode安装">vscode安装</h2> +<p>vscode下载地址为:<a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener">官网</a></p> +<p>安装中建议勾选下图中两项,目的是添加右键打开的快捷方式。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp 400w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_67dc23844f9c7e8b13001d2f9034723b.webp 760w, + /blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic1_hucb35951264cbdf2376d8edbcacdd6732_28749_99ccf0ce316679dbb85f71d2699f5b04.webp" + width="600px" + height="564" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>安装完成之后有三种打开vscode的方式:</p> +<ol> +<li>开始菜单中,直接找到Visual Studio Code应用程序打开。</li> +<li>直接在对应脚本或工作文件夹点击右键,选择“<strong>通过Code打开(Open with Code)</strong>”。</li> +<li><code>Ctrl+R</code>打开运行窗口,输入<code>code</code> (前提是重启后,vscode已加入PATH路径)。</li> +</ol> +<h2 id="插件安装">插件安装</h2> +<p>vscode通过不同功能的插件实现代码的开发运行、图片文件的预览等等一系列功能。执行GMT脚本命令,推荐安装的插件包括:</p> +<ul> +<li><strong>Code Runner</strong> 支持代码一键运行</li> +<li><strong>vscode-pdf</strong> pdf预览插件</li> +</ul> +<p>插件安装方式:打开<strong>Extensions</strong>扩展插件菜单,搜索对应插件,点击安装。安装成功之后,<strong>Install</strong>图标将变为<strong>齿轮</strong>,可点击该齿轮,修改插件属性。已安装启用的插件都可在<strong>Extension</strong>中查看设置。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp 400w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_fde4e5938fbaa3df4a8dc87913bdb3f7.webp 760w, + /blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic2_hu2329616a440bb5d23159f8d74be2bc11_35260_095f9504e48845b4e693738d1d58f598.webp" + width="700px" + height="390" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>在 Extensions 菜单中,点击 Code Runner 插件的<strong>齿轮</strong>图标,弹出菜单中选择“<strong>Extension Settings</strong>”,勾选以下三个选项。不勾选这三个选项可能会导致无法正确执行 GMT 脚本。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp 400w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_c099fdcfad8aa58bf9c9abb224610a3e.webp 760w, + /blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic3_hu805dad31df5a0e1c82582be035c398c2_86805_899e50487b02fa8bea5fd67347ebb54b.webp" + width="700px" + height="512" + loading="lazy" data-zoomable /></div> + </div></figure> +<h2 id="vscode执行gmt脚本过程">vscode执行GMT脚本过程</h2> +<p>GMT脚本建议在独立工作空间(文件夹)中执行,有以下两种方式:</p> +<ul> +<li>在vscode中的Explore资源管理器菜单,选择“<strong>打开文件夹</strong>“:</li> +</ul> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp 400w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_fee2d67c43da811798cef37ff1a012e5.webp 760w, + /blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic4_hu78227551c349f3d4eb61fdcd2af84b6c_33549_26f81e0a6b2037bc8f52972a91f46547.webp" + width="500px" + height="496" + loading="lazy" data-zoomable /></div> + </div></figure> +<ul> +<li> +<p>或者,在文件夹上右键,选择“<strong>通过Code打开</strong>”:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif1.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>含有中文的脚本需要设置编码为GB2312,否则会出现乱码:点击右下角的编码按钮, +再选择“<strong>重新打开编码(Reopen with Encoding)</strong>”,选择<strong>中文简体GB2312</strong>编码。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp 400w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_2c893c00e0e25eb290d851070ff8e056.webp 760w, + /blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic5_hu3793052ad46ce1e1ef53104830a5d6dc_25246_4a73760aac727161bb55633ac5a23757.webp" + width="700px" + height="463" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>执行脚本可选择脚本页面右上方三角符号(Alt+F1),脚本运行信息显示在下方Terminal终端窗体。若想同时预览生成结果,可增加编辑窗口(Split Editor),两个窗口分别显示脚本和运行结果。</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" + src="https://gmt-china.org/blog/vscode-usage/vscode_gif2.gif" + loading="lazy" data-zoomable width="700px" /></div> + </div></figure> +<p>若本机安装了Bash终端,vscode也可识别并自动选择bash终端来执行bash脚本。也可通过手工切换,或多个终端切换执行:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp 400w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_f4e4f7e61eb08cb4043defbcbbc487ba.webp 760w, + /blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic6_hua4d491670ff6e1f6a7a5fb3baf91c420_76679_a0622a4e0a66326132809ccce617c482.webp" + width="700px" + height="533" + loading="lazy" data-zoomable /></div> + </div></figure> +</li> +</ul> +<blockquote> +<p>请注意,如果你运行的是 bat 脚本,请一定要在上图的“切换终端”中选择 cmd,绝对不要使用 PowerShell。</p> +<p>如果你运行的是 bash 脚本,则必须在 <code>gmt begin</code> 之前添加一行 <code>export GMT_SESSION_NAME=$$</code> ,否则脚本运行将出现错误。 +详情请参阅<a href="https://docs.gmt-china.org/latest/module/begin/#unix-shell" target="_blank" rel="noopener">GMT中文手册的begin模块说明页面</a></p> +</blockquote> +<p>为提高编码效率,推荐使用快捷键进行代码注释、代码运行、窗格切换等操作。键盘单击F1,调出vscode的命令面板,输入”shortcut“检索出快捷键编辑命令:</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp 400w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_cba50ff60e6d58a2e48673aefb5fe653.webp 760w, + /blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/vscode-usage/vscode_pic7_huae9f90fb19d6dc42e8fc95d2da0c1f96_59482_48aed408e36b9e3b00617ba0470a7118.webp" + width="700px" + height="215" + loading="lazy" data-zoomable /></div> + </div></figure> +<p>我们可以查询或自定义众多快捷键,包括但不限于行注释(Add Line Comment/Remove Line Comment)、窗口分割(View: Split Editor Down/Right/Up/Left)、窗口关闭(View:Close Editor)等。</p> + + + + + GMT5在Windows下提示无法创建用户目录的解决办法 + https://gmt-china.org/blog/user-directory-warning/ + Fri, 27 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/user-directory-warning/ + <p>GMT5的某些版本(&lt;5.4.4)在某些特定的Windows下会出现如下警告信息:</p> +<pre tabindex="0"><code>gmt: Unable to create GMT User directory : /Users/用户名/.gmt +gmt: Auto-downloading of earth_relief_##m|s.grd files has been disabled. +</code></pre><p>这是一个Windows特有,但又不是所有人都会遇到的一个问题。出现该警告信息的本质原因 +在于,当前系统没有定义环境变量 <code>HOME</code>,进而导致GMT无法知道当前计算机的主目录的 +具体位置。</p> +<p>虽然大部分情况下并不影响程序的正常运行,但总是出现这些警告信息真的有点难受。 +解决办法是:</p> +<pre tabindex="0"><code>1、打开 “我的电脑”-&gt;“属性”-&gt;“高级系统设置”-&gt;“环境变量” +2、新建 “系统变量” + 变量名: HOME + 变量值: C:\Users\用户名 +</code></pre><p>重新运行GMT检查问题是否得到解决,可能需要重启计算机。</p> +<p>经测试,<code>HOME</code> 变量的值可以取任意盘符中任何已存在的文件夹,正常情况下, +执行脚本后会生成 <code>%HOME%/.gmt/cache</code> 空文件夹。</p> + + + + + diff --git a/tag/windows/page/1/index.html b/tag/windows/page/1/index.html new file mode 100644 index 00000000..1613129a --- /dev/null +++ b/tag/windows/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/windows/ + + + + + + diff --git "a/tag/\345\237\271\350\256\255/index.html" "b/tag/\345\237\271\350\256\255/index.html" new file mode 100644 index 00000000..feee8783 --- /dev/null +++ "b/tag/\345\237\271\350\256\255/index.html" @@ -0,0 +1,1065 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 培训 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

培训

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT中文社区首次线下培训 +
+ + + +
+

2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。

+
+
+ + + + + + +
+
+ + + + + GMT中文社区首次线下培训 + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tag/\345\237\271\350\256\255/index.xml" "b/tag/\345\237\271\350\256\255/index.xml" new file mode 100644 index 00000000..90ceede0 --- /dev/null +++ "b/tag/\345\237\271\350\256\255/index.xml" @@ -0,0 +1,162 @@ + + + + 培训 | GMT 中文社区 + https://gmt-china.org/tag/%E5%9F%B9%E8%AE%AD/ + + 培训 + Wowchemy (https://wowchemy.com)zh-HansSun, 25 Sep 2016 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 培训 + https://gmt-china.org/tag/%E5%9F%B9%E8%AE%AD/ + + + + GMT中文社区首次线下培训 + https://gmt-china.org/blog/gmtcon-20160921/ + Sun, 25 Sep 2016 00:00:00 +0000 + https://gmt-china.org/blog/gmtcon-20160921/ + <p>2016年9月21至22日,GMT中文社区协同中国地震局地震研究所和中国地震局地壳形变学科 +技术管理组举行了首次GMT线下培训活动。</p> +<p>此次培训邀请了田冬冬(中国科学技术大学在读博士,社区 ID:知名不具)、 +单斌(中国地质大学特任教授,社区 ID:Bins)和 +刘珠妹(中国地震局地震研究所,社区 ID:忆尤)三位老师在湖北省地震局21楼报告厅 +做了《GMT入门、基础及进阶》、《GMT应用与科技论文写作》、《地学常见GMT图件模板讲解》 +专题培训讲座,来自全国地震系统的学员和慕名人士共计120余人参加了此次培训。</p> +<p>此次培训考虑到培训人员GMT操作能力差异巨大,为了尽可能地照顾到所有培训人员的需求, +经过一个月精心调研准备,从内容、思路、绘图技巧等方面综合考虑,确定了此次GMT专题 +讲座的最终主题。</p> +<p>21日上午田冬冬博士首先介绍了GMT的概念、开发团队、GMT的版本等, +随后对GMT基础知识、配置文件、常用命令进行了详细讲解,最后总结了GMT学习方法及 +学习资源,对GMT中文社区创建初衷、社区功能、未来发展等做了阐述,并呼吁各位 +仁人志士加入到GMT社区的设计和日常维护中。</p> +<p>单斌教授对GMT做了简单介绍,随后深入浅出的介绍了GMT常用选项、常用命令、shell脚本 +编写等,并对GMT在科技论文中的应用做了具体实例讲解,提供了科技论文写作技巧。 +最后具神指出了GMT5和GMT4的语法命令区别,对学习兴趣、专业优势等和大家做了深入 +分享交流。</p> +<p>22日下午刘珠妹老师对地学常见GMT图件模板进行了讲解,刘老师首先讲授了怎样读懂脚本的 +使用平台、脚本版本、脚本结构等内容,然后讲授了编写绘图脚本的6个基本步骤, +介绍了自由空气异常图、布格异常图等几种常用绘图模板,讨论了中文支持、脚本批量运行、 +二次开发等GMT绘图技巧,刘老师强调在学习过程中,应对照样例修改参数, +具体问题具体分析,带着问题去找答案。</p> +<p>此次GMT专题培训授课内容全面、专题性比较强、课程安排比较合理,通过此次培训, +推广了GMT的使用范围,提高了GMT软件在日常工作中实际操作应用能力, +促进了GMT群和GMT中文社区的未来更快更好发展,加强了GMT群成员的交流, +此次培训取得了预期效果,期待下一次培训的召开。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="田冬冬" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_634952eb6d3a5ed90d01f7bc2da7b39c.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-1_hufa6f9c68e54c09f4a62327e6e8aed350_291187_a1cddd8a933b616ce400f1cd3bafa169.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="单斌" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_ea991405a89c79a8581223ef9d158306.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-2_huefac1f45a4af092d8acbd9d28a43f6fa_284705_b610a6dbd02d6bd3fe37e69f3690ba67.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="刘珠妹" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_4909b792319b47c09538fe6493a11efc.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-3_huaeb15ebfc4264d19b0e8b4d9d90c92f7_358187_d7f100080f647723124ef986160a5f7f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="现场互动" srcset=" + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp 400w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_c41273b7e4f2317ce0d1c9a4a9570f5a.webp 760w, + /blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gmtcon-20160921/GMTCon20160921-4_hu544bc5678527035feead4557d8b92eb3_385829_a9f53c46857e33169bb542ecd11e6f4f.webp" + width="760" + height="507" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> + + + + diff --git "a/tag/\345\237\271\350\256\255/page/1/index.html" "b/tag/\345\237\271\350\256\255/page/1/index.html" new file mode 100644 index 00000000..96763861 --- /dev/null +++ "b/tag/\345\237\271\350\256\255/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/%E5%9F%B9%E8%AE%AD/ + + + + + + diff --git "a/tag/\346\225\260\346\215\256\344\270\213\350\275\275/index.html" "b/tag/\346\225\260\346\215\256\344\270\213\350\275\275/index.html" new file mode 100644 index 00000000..91461f4b --- /dev/null +++ "b/tag/\346\225\260\346\215\256\344\270\213\350\275\275/index.html" @@ -0,0 +1,1058 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 数据下载 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

数据下载

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ 利用 Google Maps 获取超高精度高程数据 +
+ + + +
+ 如何获得米级精度的高程数据? +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tag/\346\225\260\346\215\256\344\270\213\350\275\275/index.xml" "b/tag/\346\225\260\346\215\256\344\270\213\350\275\275/index.xml" new file mode 100644 index 00000000..22a4981c --- /dev/null +++ "b/tag/\346\225\260\346\215\256\344\270\213\350\275\275/index.xml" @@ -0,0 +1,153 @@ + + + + 数据下载 | GMT 中文社区 + https://gmt-china.org/tag/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + + 数据下载 + Wowchemy (https://wowchemy.com)zh-HansThu, 14 Sep 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 数据下载 + https://gmt-china.org/tag/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + + + + 利用 Google Maps 获取超高精度高程数据 + https://gmt-china.org/blog/google-maps-elevation-api/ + Thu, 14 Sep 2017 00:00:00 +0000 + https://gmt-china.org/blog/google-maps-elevation-api/ + <p>在绘制超小区域的地形图时,常需要超高精度的高程数据。</p> +<p>目前已知的公开高程数据中,ASTER GDEM的精度最高,为1弧秒,即约30米一个数据点。 +可以通过 Google Maps Elevation API 获取米级精度的数据。</p> +<h2 id="数据简介">数据简介</h2> +<p>Google Maps Elevation API 提供地球表面所有位置的海拔高度数据,包括海床上的深度位 +置(此类位置返回负值)。</p> +<p>官方文档:</p> +<ul> +<li><a href="https://developers.google.com/maps/documentation/elevation/start?hl=zh-cn" target="_blank" rel="noopener">入门指南</a></li> +<li><a href="https://developers.google.com/maps/documentation/elevation/intro?hl=zh-cn" target="_blank" rel="noopener">开发人员指南</a></li> +</ul> +<h2 id="获取密钥-api-key">获取密钥 API KEY</h2> +<p>想要从Google Maps中获取地形数据,首先需要一个密钥。 +可以从 <a href="https://developers.google.com/maps/documentation/elevation/get-api-key" target="_blank" rel="noopener">get API key</a> +页面开始申请秘钥(需要提供信用卡等信息)。</p> +<p>限额说明:</p> +<ul> +<li>每个用户最多可能只能申请10个免费密钥</li> +<li>每个密钥每天2500次免费请求</li> +<li>每次请求最多512个位置</li> +<li>每秒最多50次请求</li> +</ul> +<h2 id="使用说明">使用说明</h2> +<h3 id="获取单点高程">获取单点高程</h3> +<p>通过简单的网络请求即可获取单点的高程:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&amp;key=YOUR_API_KEY +</code></pre><p>其中:</p> +<ul> +<li><code>locations=39.7391536,-104.9847034</code> 指定了要获取高程的经纬度,纬度和经度之间用逗号分隔;</li> +<li><code>key=YOU_API_KEY</code> 指定了用户密钥,用户需要将自己申请的密钥替换 <code>YOU_API_KEY</code></li> +</ul> +<p>将上面的链接复制到浏览器中,即可得到返回值为::</p> +<pre><code>{ + &quot;results&quot; : [ + { + &quot;elevation&quot; : 1608.637939453125, + &quot;location&quot; : { + &quot;lat&quot; : 39.73915360, + &quot;lng&quot; : -104.98470340 + }, + &quot;resolution&quot; : 4.771975994110107 + } + ], + &quot;status&quot; : &quot;OK&quot; +} +</code></pre> +<p>从中可以看到这一点的海拔高度是 1608.637939453125 米(小数点后几位可能都没有意义)。 +resolution给出了该点高程的分辨率值,即内插海拔高度的数据点之间的最大距离,以米为单位。</p> +<h3 id="获取多点高程">获取多点高程</h3> +<p>也可以在一次网络请求中获取多个点的高程,多个位置之间用 <code>|</code> 分隔即可。例如:</p> +<pre tabindex="0"><code>https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&amp;key=YOUR_API_KEY +</code></pre><p>但一次请求中的位置不能超过512个。</p> +<h3 id="批量获取高程">批量获取高程</h3> +<p>Google Maps 提供了多种客户端以实现批量获取高程。 +此处以<a href="https://github.com/googlemaps/google-maps-services-python/" target="_blank" rel="noopener">Python客户端</a> 为例。</p> +<ol> +<li> +<p>安装 Google Map API 的 Python模块:</p> +<pre><code> $ pip install -U googlemaps +</code></pre> +</li> +<li> +<p>获取密钥</p> +</li> +<li> +<p>参考如下脚本批量获取高程数据</p> +</li> +</ol> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: utf-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">googlemaps</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="s2">&#34;&#34;&#34;Request elevation and return them with a list +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> Parameter +</span></span></span><span class="line"><span class="cl"><span class="s2"> ========= +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xmax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum longitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> xinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of longitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymin : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> minimum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> ymax : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> maximum latitude, unit is degree +</span></span></span><span class="line"><span class="cl"><span class="s2"> yinc : float +</span></span></span><span class="line"><span class="cl"><span class="s2"> increment of latitude +</span></span></span><span class="line"><span class="cl"><span class="s2"> maxnum : int +</span></span></span><span class="line"><span class="cl"><span class="s2"> point number of one request, maximum value is 512 +</span></span></span><span class="line"><span class="cl"><span class="s2"> &#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">xlist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">ylist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">points</span> <span class="o">=</span> <span class="p">[(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">ylist</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xlist</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">requestnum</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">points</span><span class="p">)</span> <span class="o">/</span> <span class="n">maxnum</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">npoints</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array_split</span><span class="p">(</span><span class="n">points</span><span class="p">,</span> <span class="n">requestnum</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">requestnum</span> <span class="o">&gt;</span> <span class="mi">2500</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Error: Request number exceed! Change grid or region.&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="p">[</span><span class="n">gmaps</span><span class="o">.</span><span class="n">elevation</span><span class="p">(</span><span class="n">locations</span><span class="o">=</span><span class="n">loc</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> <span class="k">for</span> <span class="n">loc</span> <span class="ow">in</span> <span class="n">npoints</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># 设置要下载高程数据的经度范围、纬度范围以及网格间隔</span> +</span></span><span class="line"><span class="cl"><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span> <span class="o">=</span> <span class="mf">120.000</span><span class="p">,</span> <span class="mf">129.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span> <span class="o">=</span> <span class="mf">30.000</span><span class="p">,</span> <span class="mf">30.005</span><span class="p">,</span> <span class="mf">0.00005</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">gmaps</span> <span class="o">=</span> <span class="n">googlemaps</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s1">&#39;YOU_API_KEY&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># Obtain all elevations</span> +</span></span><span class="line"><span class="cl"><span class="c1"># 请设置 maxnum 确保每一次请求的数据点数不超过 512 个以控制请求字符串长度</span> +</span></span><span class="line"><span class="cl"><span class="n">elevations</span> <span class="o">=</span> <span class="n">request_elevation</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xinc</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">yinc</span><span class="p">,</span> <span class="n">maxnum</span><span class="o">=</span><span class="mi">512</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># output data with format `longitude latitude elevation resolution`</span> +</span></span><span class="line"><span class="cl"><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&#34;Elevations.dat&#34;</span><span class="p">,</span> <span class="s2">&#34;w&#34;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">loclist</span> <span class="ow">in</span> <span class="n">elevations</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">subloc</span> <span class="ow">in</span> <span class="n">loclist</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">outputstr</span> <span class="o">=</span> <span class="s2">&#34;</span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="s2"> </span><span class="si">{:.5f}</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lng&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">][</span><span class="s1">&#39;lat&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;elevation&#39;</span><span class="p">],</span> +</span></span><span class="line"><span class="cl"> <span class="n">subloc</span><span class="p">[</span><span class="s1">&#39;resolution&#39;</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">f</span><span class="o">.</span><span class="n">writelines</span><span class="p">(</span><span class="n">outputstr</span><span class="p">)</span> +</span></span></code></pre></div> + + + + diff --git "a/tag/\346\225\260\346\215\256\344\270\213\350\275\275/page/1/index.html" "b/tag/\346\225\260\346\215\256\344\270\213\350\275\275/page/1/index.html" new file mode 100644 index 00000000..2e7d0024 --- /dev/null +++ "b/tag/\346\225\260\346\215\256\344\270\213\350\275\275/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + + + + + + diff --git "a/tag/\346\226\207\347\214\256\344\270\213\350\275\275/index.html" "b/tag/\346\226\207\347\214\256\344\270\213\350\275\275/index.html" new file mode 100644 index 00000000..b3d162b4 --- /dev/null +++ "b/tag/\346\226\207\347\214\256\344\270\213\350\275\275/index.html" @@ -0,0 +1,1064 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 文献下载 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

文献下载

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ 使用sci-hub下载文献 +
+ + + +
+ 教你如何用sci-hub下载文献 +
+
+ + + + + + +
+
+ + + + + 使用sci-hub下载文献 + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tag/\346\226\207\347\214\256\344\270\213\350\275\275/index.xml" "b/tag/\346\226\207\347\214\256\344\270\213\350\275\275/index.xml" new file mode 100644 index 00000000..7f8c8583 --- /dev/null +++ "b/tag/\346\226\207\347\214\256\344\270\213\350\275\275/index.xml" @@ -0,0 +1,126 @@ + + + + 文献下载 | GMT 中文社区 + https://gmt-china.org/tag/%E6%96%87%E7%8C%AE%E4%B8%8B%E8%BD%BD/ + + 文献下载 + Wowchemy (https://wowchemy.com)zh-HansSat, 12 Aug 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 文献下载 + https://gmt-china.org/tag/%E6%96%87%E7%8C%AE%E4%B8%8B%E8%BD%BD/ + + + + 使用sci-hub下载文献 + https://gmt-china.org/blog/sci-hub/ + Sat, 12 Aug 2017 00:00:00 +0000 + https://gmt-china.org/blog/sci-hub/ + <p>科研人员经常要看一些全文,但由于单位不可能花钱购买所有数据库的下载权限, +因而会经常需要需要付费下载文章的情况。本文将介绍文献下载的好工具 sci-hub, +可以下载到绝大多数外文期刊的文章甚至书籍。</p> +<h2 id="sci-hub-网站">sci-hub 网站</h2> +<p>sci-hub 是一个在线网站,可以下载众多本该付费下载的文章,因而本质上是非法的, +用户请自行判断。原始域名已经被封禁,用户可以访问如下网站获取可用的网址:</p> +<p><a href="https://whereisscihub.now.sh/" target="_blank" rel="noopener">https://whereisscihub.now.sh/</a></p> +<h2 id="使用方法">使用方法</h2> +<p>下面将用多种方法演示如何下载地球科学引用率非常高的一篇文章 Preliminary reference Earth model。</p> +<p>要下载一篇文章,需要知道如下两个信息中的至少一个:</p> +<ol> +<li>文献的官方网址,比如 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a>, +可以通过 Google Scholar 等网站搜索得到</li> +<li>文献的DOI,比如 <code>10.1016/0031-9201(81)90046-7</code>,可以从文章的官方网站上找到, +现在大多数文章的参考文献也要求给出DOI信息</li> +</ol> +<blockquote> +<p>DOI 是 Digital Object Identifier 的缩写,也叫唯一标识符,是国际通用、 +全球唯一、终身不变的数字资源标识符。正如我们每人都有自己独一无二的身份证号一样, +DOI代码具有唯一性,一旦分配,终身不变。已知DOI,将 DOI 加到 <a href="https://dx.doi.org/" target="_blank" rel="noopener">https://dx.doi.org/</a> 后 +(例如 <a href="https://dx.doi.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://dx.doi.org/10.1016/0031-9201(81)90046-7</a> )即可跳转到该文章的真实网址。</p> +</blockquote> +<h3 id="到-sci-hub-网站下载">到 sci-hub 网站下载</h3> +<p>访问 sci-hub 网址,比如 <a href="https://sci.hubg.org/" target="_blank" rel="noopener">https://sci.hubg.org/</a> ,如下图所示:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub主页" srcset=" + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp 400w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_c8182fb81fd9bef0ea1f958f1b84cb30.webp 760w, + /blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-homepage_huf742b26f81888ed21ce09c51811961f9_145831_848fade44d3de3837dcf9d5c3ea49556.webp" + width="760" + height="407" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>将文献网址或DOI粘贴到搜索框中,按下确认键或点击搜索框右边的open按钮即可。</p> +<h3 id="直接利用网址下载全文">直接利用网址下载全文</h3> +<p>打开文章对应的网址,在域名的后面加上 sci-hub 的域名,比如 <code>sci-hub.org</code> 即可。</p> +<p>例如,这篇文章的网址是 <a href="https://www.sciencedirect.com/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com/science/article/pii/0031920181900467</a> , +在域名的后面加上 sci-hub 的域名,变成: +<a href="https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467" target="_blank" rel="noopener">https://www.sciencedirect.com.sci-hub.org/science/article/pii/0031920181900467</a> +即可直接下载文章全文。</p> +<h3 id="直接利用doi下载全文">直接利用DOI下载全文</h3> +<p>已知文章DOI的前提下,直接在 sci-hub 域名后面加上 DOI 即可,比如直接访问 +<a href="https://sci-hub.org/10.1016/0031-9201%2881%2990046-7" target="_blank" rel="noopener">https://sci-hub.org/10.1016/0031-9201(81)90046-7</a> 即可下载文章全文。</p> +<h2 id="注意事项">注意事项</h2> +<ul> +<li> +<p>当文献下载过频繁会要求用户输入验证码,如下图:</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="sci-hub验证码" srcset=" + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp 400w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_a618df7f14a02f50bdc633b367c1b60c.webp 760w, + /blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_1200x1200_fit_q75_h2_lanczos_3.webp 1200w" + src="https://gmt-china.org/blog/sci-hub/sci-hub-captcha_hu9fd9782435d308c7467286210ab48f61_172703_5117aa30487283ed03aeb961ce7b8834.webp" + width="760" + height="386" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +</li> +<li> +<p>DOI是如 <code>10.1016/0031-9201(81)90046-7</code> 这样的字符串,前面不要带 <code>doi:</code> 等其他字符。</p> +</li> +<li> +<p>sci-hub 不支持下载国内期刊的文章</p> +</li> +</ul> + + + + + diff --git "a/tag/\346\226\207\347\214\256\344\270\213\350\275\275/page/1/index.html" "b/tag/\346\226\207\347\214\256\344\270\213\350\275\275/page/1/index.html" new file mode 100644 index 00000000..551de805 --- /dev/null +++ "b/tag/\346\226\207\347\214\256\344\270\213\350\275\275/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/%E6%96%87%E7%8C%AE%E4%B8%8B%E8%BD%BD/ + + + + + + diff --git "a/tag/\350\201\232\351\244\220/index.html" "b/tag/\350\201\232\351\244\220/index.html" new file mode 100644 index 00000000..4cfbd406 --- /dev/null +++ "b/tag/\350\201\232\351\244\220/index.html" @@ -0,0 +1,1065 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 聚餐 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

聚餐

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT 中文社区第三次线下聚餐 +
+ + + +
+ 2017年10月,GMT中文社区在北京举行了第三个线下聚餐。 +
+
+ + + + + + +
+
+ + + + + GMT 中文社区第三次线下聚餐 + + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tag/\350\201\232\351\244\220/index.xml" "b/tag/\350\201\232\351\244\220/index.xml" new file mode 100644 index 00000000..31ceaa9d --- /dev/null +++ "b/tag/\350\201\232\351\244\220/index.xml" @@ -0,0 +1,91 @@ + + + + 聚餐 | GMT 中文社区 + https://gmt-china.org/tag/%E8%81%9A%E9%A4%90/ + + 聚餐 + Wowchemy (https://wowchemy.com)zh-HansTue, 17 Oct 2017 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 聚餐 + https://gmt-china.org/tag/%E8%81%9A%E9%A4%90/ + + + + GMT 中文社区第三次线下聚餐 + https://gmt-china.org/blog/gud-20171017/ + Tue, 17 Oct 2017 00:00:00 +0000 + https://gmt-china.org/blog/gud-20171017/ + <p>金秋十月,秋高气爽,雁过留声。GMT 中文社区在北京成功举办了第三次线下聚餐活动。</p> +<p>2017 年 CGU 年会届时举行,全国同行汇集首都北京国际会议中心,我们借此机会齐聚一堂。 +个别同学本来表示由于时间原因或距离问题无法参会,最终还是觉得机会难得克服各种困难 +先后赶到。最终,13 位 GMTers 进行了一次成功的“网友见面会”。</p> +<p>在聚会上,本来活跃在 QQ 群里的大家面对面相互认识和了解了彼此的学习经历和科研方向, +除了探讨了 GMT 学习、社区发展,还聊到了地震预报预警、防震减灾和地震学家如何对 +公众进行地震科普等问题。不仅如此,本次聚会大家还进行了一些简单的跨学科交流, +桌上言谈之间对于自然科学研究及探索的热情和勇气溢于言表。</p> +<p>希望通过本次聚会我们能更加熟悉和了解该领域各个研究方向的同学,彼此保持 +更密切的联络,在科研道路上相互交流、积极互助。</p> +<p>科研道路上,知己天涯若比邻,期待下次再聚~</p> + + + + + + + + + + + + + + + + +<figure > + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="" srcset=" + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp 400w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_70cae30da2a303048b36054f82304fed.webp 760w, + /blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-1_hu98a170cf69d9caf04998715da44e1a7b_797881_ca07fc3bf134f4aabb14ecde7cd56d5e.webp" + width="760" + height="570" + loading="lazy" data-zoomable /></div> + </div></figure> + + + + + + + + + + + + + + + + +<figure id="figure-从左至右依次为章浩东中科院地质与地球物理所王志伟地震局地质研究所王少卿地震局地球物理所-张琰地震局地球物理所张周广州地化所徐荟地震局地球物理所王亮成都理工杨晓瑜地震局地球物理所李佳威地震局地球物理所北大神秘人田冬冬中科大任昱南海所方洪健中科大胡少乾中科大"> + <div class="d-flex justify-content-center"> + <div class="w-100" ><img alt="从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所&#43;北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大)" srcset=" + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp 400w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_79e9f8640a0c654f9884907c741370da.webp 760w, + /blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_1200x1200_fit_q75_h2_lanczos.webp 1200w" + src="https://gmt-china.org/blog/gud-20171017/GUD-20171017-2_huec3dee1505f57ae47c290e2a7230c1e1_845558_5cc50441586c9c0ab9c39101ee7f7643.webp" + width="760" + height="493" + loading="lazy" data-zoomable /></div> + </div><figcaption> + 从左至右依次为:章浩东(中科院地质与地球物理所)、王志伟(地震局地质研究所)、王少卿(地震局地球物理所)、 张琰(地震局地球物理所)、张周(广州地化所)、徐荟(地震局地球物理所)、王亮(成都理工)、杨晓瑜(地震局地球物理所)、李佳威(地震局地球物理所+北大)、神秘人、田冬冬(中科大)、任昱(南海所)、方洪健(中科大)、胡少乾(中科大) + </figcaption></figure> + + + + + diff --git "a/tag/\350\201\232\351\244\220/page/1/index.html" "b/tag/\350\201\232\351\244\220/page/1/index.html" new file mode 100644 index 00000000..543b184d --- /dev/null +++ "b/tag/\350\201\232\351\244\220/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/%E8%81%9A%E9%A4%90/ + + + + + + diff --git "a/tag/\351\225\234\345\203\217/index.html" "b/tag/\351\225\234\345\203\217/index.html" new file mode 100644 index 00000000..9f728282 --- /dev/null +++ "b/tag/\351\225\234\345\203\217/index.html" @@ -0,0 +1,1060 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 镜像 | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

镜像

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ GMT国内镜像正式建成 +
+ + + +
+ GMT国内镜像正式建成 +
+
+ + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tag/\351\225\234\345\203\217/index.xml" "b/tag/\351\225\234\345\203\217/index.xml" new file mode 100644 index 00000000..2c06604f --- /dev/null +++ "b/tag/\351\225\234\345\203\217/index.xml" @@ -0,0 +1,35 @@ + + + + 镜像 | GMT 中文社区 + https://gmt-china.org/tag/%E9%95%9C%E5%83%8F/ + + 镜像 + Wowchemy (https://wowchemy.com)zh-HansFri, 08 Jul 2016 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + 镜像 + https://gmt-china.org/tag/%E9%95%9C%E5%83%8F/ + + + + GMT国内镜像正式建成 + https://gmt-china.org/blog/mirror-site-founded/ + Fri, 08 Jul 2016 00:00:00 +0000 + https://gmt-china.org/blog/mirror-site-founded/ + <p>经过本社区积极联系,GMT中国区镜像站点已于2016年7月6日正式建立,并已加入GMT官网镜像列表中。 +该镜像站点依托中国科学技术大学LUG服务器,是中国唯一的一个 GMT 镜像站。 +GMT国内镜像的建立,可以大大加快下载GMT源码及相关数据的速度。</p> +<h2 id="gmt-源码包镜像">GMT 源码包镜像</h2> +<p>镜像地址:<a href="http://mirrors.ustc.edu.cn/gmt/" target="_blank" rel="noopener">http://mirrors.ustc.edu.cn/gmt/</a></p> +<p>GMT 源码包镜像中包含了 GMT 源码软件包以及 GSHHG 和 DCW 数据压缩包。 +进入 GMT 镜像即可直接下载 GMT 源码包,Windows/Mac 安装包位于镜像的 <code>bin</code> 目录下。</p> +<h2 id="gmt-远程数据镜像">GMT 远程数据镜像</h2> +<p>镜像地址:<a href="https://mirrors.ustc.edu.cn/gmtdata/" target="_blank" rel="noopener">https://mirrors.ustc.edu.cn/gmtdata/</a></p> +<p>GMT 远程数据镜像中提供了全球地形起伏等地学数据。该镜像的使用方法可以参考 +<a href="https://docs.gmt-china.org/latest/dataset/usage/" target="_blank" rel="noopener">https://docs.gmt-china.org/latest/dataset/usage/</a>。</p> + + + + + diff --git "a/tag/\351\225\234\345\203\217/page/1/index.html" "b/tag/\351\225\234\345\203\217/page/1/index.html" new file mode 100644 index 00000000..b6b9d97e --- /dev/null +++ "b/tag/\351\225\234\345\203\217/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tag/%E9%95%9C%E5%83%8F/ + + + + + + diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 00000000..156396b0 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,1623 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tags | GMT 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+

Tags

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ Linux +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ Mac +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ Windows +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 聚餐 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 数据下载 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 文献下载 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ GMT User Dinner +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 培训 +
+ + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ 镜像 +
+ + + + + + + +
+
+ + +
+
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 00000000..192b88d9 --- /dev/null +++ b/tags/index.xml @@ -0,0 +1,16 @@ + + + + Tags | GMT 中文社区 + https://gmt-china.org/tags/ + + Tags + Wowchemy (https://wowchemy.com)zh-HansWed, 19 Feb 2020 00:00:00 +0000 + + https://gmt-china.org/media/icon_hub7ca0b5404c6d576559b2bd22c64b0e5_1747_512x512_fill_lanczos_center_3.png + Tags + https://gmt-china.org/tags/ + + + + diff --git a/tags/page/1/index.html b/tags/page/1/index.html new file mode 100644 index 00000000..ccdace0c --- /dev/null +++ b/tags/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://gmt-china.org/tags/ + + + + + + diff --git a/webfonts/fa-brands-400.ttf b/webfonts/fa-brands-400.ttf new file mode 100644 index 00000000..227f022d Binary files /dev/null and b/webfonts/fa-brands-400.ttf differ diff --git a/webfonts/fa-brands-400.woff2 b/webfonts/fa-brands-400.woff2 new file mode 100644 index 00000000..73c5c129 Binary files /dev/null and b/webfonts/fa-brands-400.woff2 differ diff --git a/webfonts/fa-regular-400.ttf b/webfonts/fa-regular-400.ttf new file mode 100644 index 00000000..c8ed46d4 Binary files /dev/null and b/webfonts/fa-regular-400.ttf differ diff --git a/webfonts/fa-regular-400.woff2 b/webfonts/fa-regular-400.woff2 new file mode 100644 index 00000000..c9291c7b Binary files /dev/null and b/webfonts/fa-regular-400.woff2 differ diff --git a/webfonts/fa-solid-900.ttf b/webfonts/fa-solid-900.ttf new file mode 100644 index 00000000..99b35ad5 Binary files /dev/null and b/webfonts/fa-solid-900.ttf differ diff --git a/webfonts/fa-solid-900.woff2 b/webfonts/fa-solid-900.woff2 new file mode 100644 index 00000000..c7bd59c2 Binary files /dev/null and b/webfonts/fa-solid-900.woff2 differ diff --git a/webfonts/fa-v4compatibility.ttf b/webfonts/fa-v4compatibility.ttf new file mode 100644 index 00000000..be0afc27 Binary files /dev/null and b/webfonts/fa-v4compatibility.ttf differ diff --git a/webfonts/fa-v4compatibility.woff2 b/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 00000000..37a9b8c7 Binary files /dev/null and b/webfonts/fa-v4compatibility.woff2 differ diff --git a/zh/js/wowchemy.min.5dd6318d852b1d2dade11ec83bf2a2ae.js b/zh/js/wowchemy.min.5dd6318d852b1d2dade11ec83bf2a2ae.js new file mode 100644 index 00000000..44f7b6a9 --- /dev/null +++ b/zh/js/wowchemy.min.5dd6318d852b1d2dade11ec83bf2a2ae.js @@ -0,0 +1,6 @@ +/*! Wowchemy v5.5.0 | https://wowchemy.com/ */ +/*! Copyright 2016-present George Cushen (https://georgecushen.com/) */ +/*! License: https://github.com/wowchemy/wowchemy-hugo-themes/blob/main/LICENSE.md */ + +; +(()=>{(()=>{var e,i,a,r,d,f,b,j,x,C,k,t=Object.assign||function(s){for(var e,n,t=1;t1&&arguments[1]!==void 0?arguments[1]:{},h=window.Promise||function(t){function e(){}t(e,e)},M=function(t){var e=t.target;if(e===l){r();return}if(a.indexOf(e)===-1)return;f({target:e})},S=function(){if(c||!e.original)return;var t=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(p-t)>s.scrollOffset&&setTimeout(r,150)},A=function(t){var e=t.key||t.keyCode;(e==="Escape"||e==="Esc"||e===27)&&r()},k=function(){var c,e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=e;return e.background&&(l.style.background=e.background),e.container&&e.container instanceof Object&&(r.container=t({},s.container,e.container)),e.template&&(c=o(e.template)?e.template:document.querySelector(e.template),r.template=c),s=t({},s,r),a.forEach(function(e){e.dispatchEvent(n("medium-zoom:update",{detail:{zoom:i}}))}),i},E=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y(t({},s,e))},m=function(){for(var t,n=arguments.length,s=Array(n),e=0;e0?s.reduce(function(e,t){return[].concat(e,_(t))},[]):a,o.forEach(function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(n("medium-zoom:detach",{detail:{zoom:i}}))}),a=a.filter(function(e){return o.indexOf(e)===-1}),i},b=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return a.forEach(function(s){s.addEventListener("medium-zoom:"+e,t,n)}),u.push({type:"medium-zoom:"+e,listener:t,options:n}),i},v=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return a.forEach(function(s){s.removeEventListener("medium-zoom:"+e,t,n)}),u=u.filter(function(n){return n.type!=="medium-zoom:"+e||n.listener.toString()!==t.toString()}),i},g=function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=m.target,u=function(){if(n={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},i=void 0,a=void 0,s.container)if(s.container instanceof Object)n=t({},n,s.container),i=n.width-n.left-n.right-s.margin*2,a=n.height-n.top-n.bottom-s.margin*2;else{var n,C=o(s.container)?s.container:document.querySelector(s.container),c=C.getBoundingClientRect(),_=c.width,y=c.height,v=c.left,g=c.top;n=t({},n,{width:_,height:y,left:v,top:g})}var i=i||n.width-s.margin*2,a=a||n.height-s.margin*2,r=e.zoomedHd||e.original,p=w(r)?i:r.naturalWidth||i,f=w(r)?a:r.naturalHeight||a,l=r.getBoundingClientRect(),b=l.top,j=l.left,h=l.width,u=l.height,O=Math.min(p,i)/h,x=Math.min(f,a)/u,d=Math.min(O,x),E=(-j+(i-h)/2+s.margin+n.left)/d,k=(-b+(a-u)/2+s.margin+n.top)/d,m="scale("+d+") translate3d("+E+"px, "+k+"px, 0)";e.zoomed.style.transform=m,e.zoomedHd&&(e.zoomedHd.style.transform=m)};return new h(function(t){if(d&&a.indexOf(d)===-1){t(i);return}var h,m,f,g,v=function s(){c=!1,e.zoomed.removeEventListener("transitionend",s),e.original.dispatchEvent(n("medium-zoom:opened",{detail:{zoom:i}})),t(i)};if(e.zoomed){t(i);return}if(d)e.original=d;else if(a.length>0)m=a,e.original=m[0];else{t(i);return}e.original.dispatchEvent(n("medium-zoom:open",{detail:{zoom:i}})),p=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,c=!0,e.zoomed=N(e.original),document.body.appendChild(l),s.template&&(f=o(s.template)?s.template:document.querySelector(s.template),e.template=document.createElement("div"),e.template.appendChild(f.content.cloneNode(!0)),document.body.appendChild(e.template)),document.body.appendChild(e.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),e.original.classList.add("medium-zoom-image--hidden"),e.zoomed.classList.add("medium-zoom-image--opened"),e.zoomed.addEventListener("click",r),e.zoomed.addEventListener("transitionend",v),e.original.getAttribute("data-zoom-src")?(e.zoomedHd=e.zoomed.cloneNode(),e.zoomedHd.removeAttribute("srcset"),e.zoomedHd.removeAttribute("sizes"),e.zoomedHd.src=e.zoomed.getAttribute("data-zoom-src"),e.zoomedHd.onerror=function(){clearInterval(h),console.warn("Unable to reach the zoom image target "+e.zoomedHd.src),e.zoomedHd=null,u()},h=setInterval(function(){e.zoomedHd.complete&&(clearInterval(h),e.zoomedHd.classList.add("medium-zoom-image--opened"),e.zoomedHd.addEventListener("click",r),document.body.appendChild(e.zoomedHd),u())},10)):e.original.hasAttribute("srcset")?(e.zoomedHd=e.zoomed.cloneNode(),e.zoomedHd.removeAttribute("sizes"),e.zoomedHd.removeAttribute("loading"),g=e.zoomedHd.addEventListener("load",function(){e.zoomedHd.removeEventListener("load",g),e.zoomedHd.classList.add("medium-zoom-image--opened"),e.zoomedHd.addEventListener("click",r),document.body.appendChild(e.zoomedHd),u()})):u()})},r=function(){return new h(function(t){if(c||!e.original){t(i);return}var s=function s(){e.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(e.zoomed),e.zoomedHd&&document.body.removeChild(e.zoomedHd),document.body.removeChild(l),e.zoomed.classList.remove("medium-zoom-image--opened"),e.template&&document.body.removeChild(e.template),c=!1,e.zoomed.removeEventListener("transitionend",s),e.original.dispatchEvent(n("medium-zoom:closed",{detail:{zoom:i}})),e.original=null,e.zoomed=null,e.zoomedHd=null,e.template=null,t(i)};c=!0,document.body.classList.remove("medium-zoom--opened"),e.zoomed.style.transform="",e.zoomedHd&&(e.zoomedHd.style.transform=""),e.template&&(e.template.style.transition="opacity 150ms",e.template.style.opacity=0),e.original.dispatchEvent(n("medium-zoom:close",{detail:{zoom:i}})),e.zoomed.addEventListener("transitionend",s)})},f=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.target;return e.original?r():g({target:n})},j=function(){return s},O=function(){return a},x=function(){return e.original},a=[],u=[],c=!1,p=0,s=F,e={original:null,zoomed:null,zoomedHd:null,template:null};return Object.prototype.toString.call(d)==="[object Object]"?s=d:(d||typeof d=="string")&&m(d),s=t({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},s),l=L(s.background),document.addEventListener("click",M),document.addEventListener("keyup",A),document.addEventListener("scroll",S),window.addEventListener("resize",r),i={open:g,close:r,toggle:f,update:k,clone:E,attach:m,detach:C,on:b,off:v,getOptions:j,getImages:O,getZoomedImage:x},i};function D(n,s){s===void 0&&(s={});var e,t,o=s.insertAt;if(!n||typeof document=="undefined")return;t=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style"),e.type="text/css",o==="top"?t.firstChild?t.insertBefore(e,t.firstChild):t.appendChild(e):t.appendChild(e),e.styleSheet?e.styleSheet.cssText=n:e.appendChild(document.createTextNode(n))}j=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}",D(j),b=y,C=!0,f="production",i=!0;function g(e,s){const t=e.getBoundingClientRect(),o={height:e.clientHeight,width:e.clientWidth},n=s.getBoundingClientRect(),i=n.top>=t.top&&n.bottom<=t.top+o.height;i||(e.scrollTop=n.top+e.scrollTop-t.top)}function v(e,s=600){e.style.display="",e.style.opacity="0";let n=+new Date,t=function(){e.style.opacity=(+e.style.opacity+(new Date-n)/s).toString(),n=+new Date,+e.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(t)||setTimeout(t,16))};t()}e=document.body;function E(){return parseInt(localStorage.getItem("wcTheme")||2)}function l(){return Boolean(window.wc.darkLightEnabled)}function T(){if(!l())return console.debug("User theming disabled."),{isDarkTheme:window.wc.isSiteThemeDark,themeMode:window.wc.isSiteThemeDark?1:0};console.debug("User theming enabled.");let t,n=E();switch(console.debug(`User's theme variation: ${n}`),n){case 0:t=!1;break;case 1:t=!0;break;default:window.matchMedia("(prefers-color-scheme: dark)").matches?t=!0:window.matchMedia("(prefers-color-scheme: light)").matches?t=!1:t=window.wc.isSiteThemeDark;break}return t&&!e.classList.contains("dark")?(console.debug("Applying Wowchemy dark theme"),document.body.classList.add("dark")):!t&&e.classList.contains("dark")&&(console.debug("Applying Wowchemy light theme"),document.body.classList.remove("dark")),{isDarkTheme:t,themeMode:n}}function u(t){if(!l()){console.debug("Cannot change theme - user theming disabled.");return}let e;switch(t){case 0:localStorage.setItem("wcTheme","0"),e=!1,console.debug("User changed theme variation to Light.");break;case 1:localStorage.setItem("wcTheme","1"),e=!0,console.debug("User changed theme variation to Dark.");break;default:localStorage.setItem("wcTheme","2"),window.matchMedia("(prefers-color-scheme: dark)").matches?e=!0:window.matchMedia("(prefers-color-scheme: light)").matches?e=!1:e=window.wc.isSiteThemeDark,console.debug("User changed theme variation to Auto.");break}h(e,t)}function S(s){let e=document.querySelector(".js-set-theme-light"),t=document.querySelector(".js-set-theme-dark"),n=document.querySelector(".js-set-theme-auto");if(e===null)return;switch(s){case 0:e.classList.add("dropdown-item-active"),t.classList.remove("dropdown-item-active"),n.classList.remove("dropdown-item-active");break;case 1:e.classList.remove("dropdown-item-active"),t.classList.add("dropdown-item-active"),n.classList.remove("dropdown-item-active");break;default:e.classList.remove("dropdown-item-active"),t.classList.remove("dropdown-item-active"),n.classList.add("dropdown-item-active");break}}function h(t,r=2,n=!1){const s=document.querySelector("link[title=hl-light]"),o=document.querySelector("link[title=hl-dark]"),i=s!==null||o!==null,a=document.querySelector("script[title=mermaid]")!==null;S(r);const c=new CustomEvent("wcThemeChange",{detail:{isDarkTheme:()=>t}});if(document.dispatchEvent(c),!n&&(t===!1&&!e.classList.contains("dark")||t===!0&&e.classList.contains("dark")))return;t===!1?(n||(Object.assign(document.body.style,{opacity:0,visibility:"visible"}),v(document.body,600)),e.classList.remove("dark"),i&&(console.debug("Setting HLJS theme to light"),s&&(s.disabled=!1),o&&(o.disabled=!0)),a&&(console.debug("Initializing Mermaid with light theme"),n?window.mermaid.initialize({startOnLoad:!0,theme:"default",securityLevel:"loose"}):location.reload())):t===!0&&(n||(Object.assign(document.body.style,{opacity:0,visibility:"visible"}),v(document.body,600)),e.classList.add("dark"),i&&(console.debug("Setting HLJS theme to dark"),s&&(s.disabled=!0),o&&(o.disabled=!1)),a&&(console.debug("Initializing Mermaid with dark theme"),n?window.mermaid.initialize({startOnLoad:!0,theme:"dark",securityLevel:"loose"}):location.reload()))}function A(n){if(!l())return;const s=n.matches;console.debug(`OS dark mode preference changed to ${s?"\u{1F312} on":"\u2600\uFE0F off"}.`);let t=E(),e;t===2&&(window.matchMedia("(prefers-color-scheme: dark)").matches?e=!0:window.matchMedia("(prefers-color-scheme: light)").matches?e=!1:e=window.wc.isSiteThemeDark,h(e,t))}console.debug(`Environment: ${f}`);function m(){let e=document.getElementById("navbar-main"),t=e?e.getBoundingClientRect().height:0;return console.debug("Navbar height: "+t),t}function p(e,t=0){if(e=typeof e=="undefined"||typeof e=="object"?decodeURIComponent(window.location.hash):e,$(e).length){e="#"+$.escapeSelector(e.substring(1));let n=Math.ceil($(e).offset().top-m());$("body").addClass("scrolling"),$("html, body").animate({scrollTop:n},t,function(){$("body").removeClass("scrolling")})}else console.debug("Cannot scroll to target `#"+e+"`. ID not found!")}function O(){let e=$("body"),t=e.data("bs.scrollspy");t&&(t._config.offset=m(),e.data("bs.scrollspy",t),e.scrollspy("refresh"))}function M(){if(window.history.replaceState){let e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.hash;window.history.replaceState({path:e},"",e)}}window.addEventListener("hashchange",p),$("#navbar-main li.nav-item a.nav-link, .js-scroll").on("click",function(t){let e=this.hash;if(this.pathname===window.location.pathname&&e&&$(e).length&&$(".js-widget-page").length>0){t.preventDefault();let n=Math.ceil($(e).offset().top-m());$("html, body").animate({scrollTop:n},800)}}),$(document).on("click",".navbar-collapse.show",function(e){let t=$(e.target).is("a")?$(e.target):$(e.target).parent();t.is("a")&&t.attr("class")!="dropdown-toggle"&&$(this).collapse("hide")});function F(e,t){f==="production"&&$.getJSON("https://api.github.com/repos/"+t+"/tags").done(function(t){let n=t[0];$(e).append(" "+n.name)}).fail(function(s,e,t){let n=e+", "+t;console.log("Request Failed: "+n)})}function c(){if($("body").hasClass("searching"))$("[id=search-query]").blur(),$("body").removeClass("searching compensate-for-scrollbar"),M(),$("#fancybox-style-noscroll").remove();else{!$("#fancybox-style-noscroll").length&&document.body.scrollHeight>window.innerHeight&&($("head").append('"),$("body").addClass("compensate-for-scrollbar")),$("body").addClass("searching"),$(".search-results").css({opacity:0,visibility:"visible"}).animate({opacity:1},200);let e=document.querySelector(".ais-SearchBox-input");e?e.focus():$("#search-query").focus()}}function P(){$("#TableOfContents").addClass("nav flex-column"),$("#TableOfContents li").addClass("nav-item"),$("#TableOfContents li a").addClass("nav-link"),$("input[type='checkbox'][disabled]").parents("ul").addClass("task-list"),$("table").addClass(".table")}function z(e){return Array.prototype.filter.call(e.parentNode.children,function(t){return t!==e})}$(document).ready(function(){P();let{isDarkTheme:n,themeMode:s}=T();h(n,s,!0),C&&hljs.initHighlighting();let e=document.querySelector(".docs-links .active"),t=document.querySelector(".docs-links");e&&t&&g(t,e)}),$(window).on("load",function(){O();let n=document.querySelectorAll(".projects-container"),r=n.length;window.location.hash&&r===0&&p(decodeURIComponent(window.location.hash),0);let s=document.querySelector(".docs-toc .nav-link.active"),o=document.querySelector(".docs-toc");s&&o&&g(o,s);let t={};document.body.classList.contains("dark")?t.background="rgba(0,0,0,0.9)":t.background="rgba(255,255,255,0.9)",b("[data-zoomable]",t);let a=0;n.forEach(function(e,a){console.debug(`Loading Isotope instance ${a}`);let o,t=e.closest("section"),n="";t.querySelector(".isotope").classList.contains("js-layout-row")?n="fitRows":n="masonry";let i=t.querySelector(".default-project-filter"),s="*";i!==null&&(s=i.textContent),console.debug(`Default Isotope filter: ${s}`),imagesLoaded(e,function(){o=new Isotope(e,{itemSelector:".isotope-item",layoutMode:n,masonry:{gutter:20},filter:s});let i=t.querySelectorAll(".project-filters a");i.forEach(e=>e.addEventListener("click",n=>{n.preventDefault();let t=e.getAttribute("data-filter");console.debug(`Updating Isotope filter to ${t}`),o.arrange({filter:t}),e.classList.remove("active"),e.classList.add("active");let s=z(e);s.forEach(e=>{e.classList.remove("active"),e.classList.remove("all")})})),l()})});function l(){a++,a===r&&(console.debug(`All Portfolio Isotope instances loaded.`),window.location.hash&&p(decodeURIComponent(window.location.hash),0))}let e=".js-github-release";$(e).length>0&&F(e,$(e).data("repo")),document.addEventListener("keyup",e=>{if(e.code==="Escape"){const e=document.body;e.classList.contains("searching")&&c()}if(e.key==="/"){let t=document.hasFocus()&&document.activeElement!==document.body&&document.activeElement!==document.documentElement&&document.activeElement||null,n=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement;i&&!n&&(e.preventDefault(),c())}}),i&&$(".js-search").click(function(e){e.preventDefault(),c()}),$('[data-toggle="tooltip"]').tooltip()}),d=document.querySelector(".js-set-theme-light"),r=document.querySelector(".js-set-theme-dark"),a=document.querySelector(".js-set-theme-auto"),d&&r&&a&&(d.addEventListener("click",e=>{e.preventDefault(),u(0)}),r.addEventListener("click",e=>{e.preventDefault(),u(1)}),a.addEventListener("click",e=>{e.preventDefault(),u(2)})),x=window.matchMedia("(prefers-color-scheme: dark)"),x.addEventListener("change",e=>{A(e)}),$("body").on("mouseenter mouseleave",".dropdown",function(n){var e=$(n.target).closest(".dropdown"),t=$(".dropdown-menu",e);e.addClass("show"),t.addClass("show"),setTimeout(function(){e[e.is(":hover")?"addClass":"removeClass"]("show"),t[e.is(":hover")?"addClass":"removeClass"]("show")},300)}),$(window).resize(function(){clearTimeout(k),k=setTimeout(O,200)})})(),(()=>{var o={authors:"Authors",event:"\u6F14\u8BB2",post:"\u6587\u7AE0",project:"\u9879\u76EE",publication:"\u51FA\u7248\u7269",slides:"Slides"},i={no_results:"\u6CA1\u6709\u627E\u5230\u7ED3\u679C",placeholder:"\u641C\u7D22...",results:"\u641C\u7D22\u7ED3\u679C"},n={indexURI:"/index.json",minLength:1,threshold:.3},s={shouldSort:!0,includeMatches:!0,tokenize:!0,threshold:n.threshold,location:0,distance:100,maxPatternLength:32,minMatchCharLength:n.minLength,keys:[{name:"title",weight:.99},{name:"summary",weight:.6},{name:"authors",weight:.5},{name:"content",weight:.2},{name:"tags",weight:.5},{name:"categories",weight:.5}]},e=60;function a(e){return decodeURIComponent((location.search.split(e+"=")[1]||"").split("&")[0]).replace(/\+/g," ")}function r(e){history.replaceState&&window.history.replaceState({path:e},"",e)}function t(t,n){let e=$("#search-query").val();if(e.length<1&&($("#search-hits").empty(),$("#search-common-queries").show()),!t&&e.length0?($("#search-hits").append('

'+e.length+" "+i.results+"

"),l(t,e)):$("#search-hits").append('
'+i.no_results+"
")}function l(t,n){$.each(n,function(l,n){let i=n.item.section,a="",r="",c=[];["publication","event"].includes(i)?a=n.item.summary:a=n.item.content,s.tokenize?c.push(t):$.each(n.matches,function(n,t){if(t.key=="content"){let n=t.indices[0][0]-e>0?t.indices[0][0]-e:0,s=t.indices[0][1]+e