天涯左岸 http://www.sunzx.net 专注于GIS的个人博客 Mon, 10 Sep 2018 07:26:24 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.9.8 手动为照片添加GPS等Exif信息 http://www.sunzx.net/archives/2297.html http://www.sunzx.net/archives/2297.html#respond Mon, 10 Sep 2018 07:13:39 +0000 http://www.sunzx.net/?p=2297   当下大家喜欢在手机上利用微信等APP给朋友们传照片,十分方便。但是照片经微信等APP传输后被删除了Exif信息。Exif(Exchangeable Image File Format)即可交换图像文件格式,是专门为数码相机的照片设定的,其中记录了照片的拍摄时间、拍摄参数以及坐标等信息(参见https://zh.wikipedia.org/wiki/EXIF)。这些信息对于回忆照片的拍摄细节具有重要的作用,特别是对那些年代久远的照片。可以说,Exif信息有助于大家更好的留住人生中的美好瞬间。那么,对于微信等APP传输后的照片,如何为其添加Exif信息呢?本文就位大家介绍一下利用Exiftool为照片添加Exif信息的方法。

图1 缺失Exif信息的照片
图1 缺失Exif信息的照片

1. 安装Exiftool

  打开Exiftool官方网站https://www.sno.phy.queensu.ca/~phil/exiftool/,从中下载最新版的Exiftool。从下载的压缩包中解压处名为exiftool(-k).exe的文件病重命名为exiftool.exe。将exiftool.exe文件放入文件夹中,并将其路径添加到系统环境变量中。

2. 撰写脚本

  由于Exiftool是采用命令行的方式工作,因此,为了方便我们撰写一个批处理脚本。

  首先,将要添加Exif信息的照片放入桌面上的Photo文件夹。然后,新建一个txt文档,在其中输入以下代码,其中对应的参数值请根据情况修改。

cd C:\Users\你的电脑用户名\Desktop\photos
exiftool -P -overwrite_original -AllDates="2015:11:26 12:00:00" -GPSLongitudeRef=E -GPSLongitude=-111.123456 -GPSLatitudeRef=N -GPSLatitude=33.23456 -GPSAltitudeRef=Above -GPSAltitude=357 -Artist="xxx" -Copyright="All Rights Reserved by xxx" -OwnerName="xxx" -AllDates="2015:11:26 12:00:00" *.jpg
pause

  其中,各参数含义如下。

  • -P:表示不改变原照片的拍摄时间
  • -overwrite_original:覆盖源文件
  • -AllDates:照片时间,包括DateTimeOriginal、CreateDate和ModifyDate三项
  • -GPSLongitudeRef:东经(E)或西经(W)
  • -GPSLatitudeRef:北纬(N)或南纬(S)
  • -GPSAltitudeRef:指定高程起点。0=”Above Sea Level”,1=”Blow Sea Level”。-GPSAltitudeRef#=0或者-GPSAltitudeRef=”A”
  • -GPSLongitude:指定经度
  • -GPSLatitude:指定纬度
  • -GPSAltitude:指定海拔高度
  • -Artist:指定艺术家,即拍照人
  • -Copyright:指定版权信息
  • -OwnerName:指定相机所有人
  • -UserComment:指定用户注释
  • .JPG:修改当前目录下所有JPG图片

  编辑好上述命令后,将txt文件保存到硬盘,并将扩展名重命名为`.bat`。

3. 添加Exif信息

  鼠标右击该bat文件,选择用管理员权限运行该文件,并等待处理结果。如果显示xx image files updated,则表示信息添加成功。注意,如果代码中存在中文,则文件的编码必须为ANSI才能正常运行。

图2 添加Exif信息后的照片
图2 添加Exif信息后的照片
图3 照片的Exif信息
图3 照片的Exif信息

]]>
http://www.sunzx.net/archives/2297.html/feed 0
利用Spatial Join统计斑块中的点数量 http://www.sunzx.net/archives/2282.html http://www.sunzx.net/archives/2282.html#respond Tue, 04 Sep 2018 13:10:44 +0000 http://www.sunzx.net/?p=2282
文章目录

  在实际工作中,有时需要统计每个行政区内的点状地物数量。假设有一个面文件(区.shp)和一个点文件(点.shp),那么如何统计面文件中每个斑块上有多少个点呢?今天,我们来介绍一下在ArcGIS中如何进行上述统计。

1. 加载文件

  将面文件(区.shp)和点文件(点.shp)加载到ArcGIS的TOC窗口中。

2. 空间关联

  我们可以利用ArcGIS中的空间关联来统计面文件中每个图斑中的点数量。

图1 数据文件示意
图1 数据文件示意

  首先,在ArcGIS的TOC窗口中,右击区文件,选择“Joins and Relates” –> “Join”,打开“Join Data”对话框。

图2 统计设置
图2 统计设置

  然后参照上图,在❶处选择“Join data from another layer based on spatial location”。在❷处选择需要进行统计的点文件,即“点.shp”。在❸处,选择“Each polygon will be given a summary of the numeric attributes of the points that fall inside it, and a count field showing how many points fass inside it.”。在❹处,设置好输出文件的位置和名称。最后点击“OK”按钮即可。

图3 统计结果
图3 统计结果

3. 查看统计结果

  将输出的结果加载到ArcGIS中,打开其属性表,我们可以看到其中一个名为`Count_`的字段,该字段中即存储了每个斑块中点的个数。`OBJECTID`中存储了每个斑块的编号。

]]>
http://www.sunzx.net/archives/2282.html/feed 0
在EndNote中重命名PDF附件 http://www.sunzx.net/archives/2171.html http://www.sunzx.net/archives/2171.html#comments Fri, 27 Oct 2017 08:45:27 +0000 http://www.sunzx.net/?p=2171   在利用EndNote管理文献时,时常要将文献对应的PDF全文附加到题录上。由于下载PDF文件时,不同网站对PDF文件的命名规则不同,使下载得到的PDF文件名五花八门。而在将PDF文件附加到对应题录时,EndNote默认不对PDF文件进行重命名,仍保持PDF文件原来的名称。如果下载时PDF文件的名称显示为乱码,则导入EndNote后仍然显示为乱码。那么如何对附加到EndNote数据库中的PDF文件按照一定的规则进行命名呢?

  其实,EndNote提供了对附加PDF文件进行重命名的操作,不仅可以对单个文件或多个文件进行手动的重命名操作,还可以进行自动重命名操作,具体步骤如下。

1. 对单个或多个题录的附加PDF文件进行重命名

  首先,选中需要进行PDF文件重命名操作的题录,并右击,在弹出的环境菜单中选择File Attachments–>Rename PDFs…(图1)

图1 在EndNote中选择重命名PDF文件命令
图1 在EndNote中选择重命名PDF文件命令

  其次,在重命名PDF文件选项对话框中设置文件命名规则。一般来说,PDF文件的名字可以由三部分组成,各部分之间以连接线连接。常用的命名规则是第一作者-年份-标题(图2)

设置PDF文件重命名规则
图2 设置PDF文件重命名规则

  点击“确定”按钮后,我们可以发现附件区的PDF文件名已经被修改(图3)

修改后的PDF文件名
图3 修改后的PDF文件名

2. 设置EndNote自动重命名PDF附件

  点击EndNote菜单中的Edit–>Preferences…命令,弹出Endnote Preferences对话框(图4)。点击该对话框左侧的PDF Handling命令,在PDF Auto Rename Options中设置重命名规则,一般选择第二项即可(图4)。点击确定后保存更改。以后,在将PDF附加到EndNote数据库时,就会自动对PDF文件进行重命名。

图4 设置PDF自动重命名选项
图4 设置PDF自动重命名选项

3. 注意事项

  在EndNote中对PDF文件的重命名是不可逆操作(图5),请谨慎进行。

图5 PDF重命名前的警告
图5 PDF重命名前的警告
]]>
http://www.sunzx.net/archives/2171.html/feed 2
利用Excel制作双Y轴图表 http://www.sunzx.net/archives/2124.html http://www.sunzx.net/archives/2124.html#respond Thu, 21 Sep 2017 14:01:07 +0000 http://www.sunzx.net/?p=2124
文章目录

  在进行数据可视化制图时,往往需要将多种数据集成到一个图表中。当两组数据具有不同的量纲或者数量级相差甚大,仅采用X坐标轴无法有效的显示出两种数据,此时就需要采用双轴图表来进行可视化。那么,在Excel中如何制作双轴坐标图呢?今天笔者就以Excel 2016为例介绍一下如何制作双轴坐标图。为了便于阐述,笔者准备了以下数据(图1)。

图1 示例数据
图1 示例数据

  以上三列数据从左至右分别是总人口、城市人口和城市化率,希望将这三列数据集成在一个图表中显示。因为城市化率的单位为百分比,与总人口和城市人口的单位不同,因此,仅使用x坐标轴无法表现出两种量纲的数据。此时,需要使用双轴图表,用X轴显示总人口和城市人口数据,图表类型为柱状图,用Y轴显示城市化率数据,图表类型为折线图。具体步骤如下。

1. 使用数据绘制初始图表

  首先,选中三列数据,一次点击菜单中的“插入->图表->插入柱状图或条形图->簇状柱状图”(图2),此时会在Excel中插入一个单Y轴柱状图,三列数据均以柱状图形式显示(图3)。

图2 插入柱状图
图2 插入柱状图
图3 初步插入的图表
图3 初步插入的图表

2. 更改系列图表类型

  在柱状图中选中表示城市化率的数据系列,右击,在环境菜单中选择“更改系列图表类型…”命令(图4)。

图4 选择更改系列图表类型命令
图4 选择更改系列图表类型命令

3. 设置次坐标轴

  在弹出的“更改图表类型”对话框中选择左侧的“组合”一项,在右侧的“为您的数据系列选择图表类型和轴”选项框中将数据系列名称为“城市化”一项的图表类型更改为“折线图”,并在“次坐标轴”复选框上打钩(图5)。

图5 更改其中一个数据系列的图表类型和坐标轴
图5 更改其中一个数据系列的图表类型和坐标轴

  在更改完图表类型后,我们发现原先的单Y轴柱状图已经变成了双Y轴柱状图与折线图混合的图表(图6)。

图6 初步生成的双Y轴坐标图
图6 初步生成的双Y轴坐标图

4. 美化图表

  最后对双Y轴图表进行美化,添加坐标轴标题、更改数据系列颜色、添加图例等。最终的双Y轴图表效果如下(图7)。

图7 最终的双Y轴坐标图
图7 最终的双Y轴坐标图

  注意:在其它版本的Excel中,具体步骤可能与上述步骤不同,读者可自行摸索。

]]>
http://www.sunzx.net/archives/2124.html/feed 0
ArcGIS中输入风格一致的带圈数字 http://www.sunzx.net/archives/2048.html http://www.sunzx.net/archives/2048.html#comments Mon, 04 Sep 2017 04:21:51 +0000 http://www.sunzx.net/?p=2048
文章目录

  在使用ArcGIS进行制图时,可能需要在图上标注带圈的数字,比如①②③以及⑪⑫⑬等。但是,默认情况下输入的①②③与⑪⑫⑬字符间存在明显差异,影响制图的美观性。那么,如何才能在ArcGIS中输入风格统一的带圈数字呢?

1. 问题分析

  分析发现,两组数字风格不同是由于字体造成的。在中文字体中(如宋体),仅包括①②③④⑤⑥⑦⑧⑨⑩共10个字符,不包含⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳等字符。因此,在使用中文字体输入上述字符时,①②③使用了默认中文字体,而⑪⑫⑬等使用了默认的西文字体,导致两组数字的显示风格不一致。

2. 解决方案

  若要解决上述问题,需要寻找一种包含①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳等所有字符在内的字体,并将这些字符手动设置为该种字体。在常用的字体中,宋体、Times New Roman等字体均未包含⑪-⑳等10个字符。那么,到底哪些字体包含了以上全部20个字符呢?经过笔者尝试后发现,在常见字体中,Cambria、Calibri以及MS Mincho等字体均包含以上20个字符(图1)。其中MS Mincho字体与宋体相似度较高,推荐使用(图1)。

图1  不同字体中的圆圈数字

  注意:MS Mincho等字体中仅包含了⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭ ⑮⑯⑰⑱⑲⑳共21个字符,没有20以上的带圈字符了 。

]]>
http://www.sunzx.net/archives/2048.html/feed 4
让ArcGIS 10.1支持VBA http://www.sunzx.net/archives/1915.html http://www.sunzx.net/archives/1915.html#comments Tue, 11 Dec 2012 02:44:51 +0000 http://www.sunzx.net/?p=1915 ArcGIS 10.1已经发布一段时间了,相信很多人已经用上了。在ArcGIS 10.1没有发布之前,就有消息说ArcGIS 10.1将不再支持VBA,这对于经常使用VBA的童鞋来说可谓是晴天霹雳,因为之前所有VBA写的东西在ArcGIS 10.1上都将无法运行。那有没有什么办法让它支持VBA呢?笔者昨天的偶然发现解决了这个问题。

昨天,笔者在查看ArcGIS 10.1的安装包时,偶然看到其中有一个名为“VBACompatibility”的文件夹,顾名思义就是“VBA兼容包”啊(如图1所示),笔者猜想,既然将这个安装包放在10.1的光盘上,那么应该可以给10.1安装。

抱着试试看的心态,笔者安装了此兼容包,安装完成后发现ArcGIS 10.1确实又支持VBA了(如图2所示)。笔者测试了四色地图制作工具,顺利运行通过(之前因为10.1不再支持VBA,此程序不能在10.1上运行)。

图1  ArcGIS 10.1(129026)安装包中的VBA兼容安装包
图1  ArcGIS 10.1(129026)安装包中的VBA兼容安装包

图2  ArcGIS 10.1中的宏和VB编辑器
图2  ArcGIS 10.1中的宏和VB编辑器

笔者已将ArcGIS 10.1的VBA兼容安装包放在了本站下载区,如果需要,请移步下载。

]]>
http://www.sunzx.net/archives/1915.html/feed 5
ArcGIS标注技巧(上标、下标等) http://www.sunzx.net/archives/1899.html http://www.sunzx.net/archives/1899.html#comments Sat, 06 Oct 2012 04:43:56 +0000 http://www.sunzx.net/?p=1899 在利用ArcGIS进行制图时,进行标注(Label)或注记(Annotation)是必不可少的。但是除了常规的标注和注记以外,还时常需要一些特殊的标注或注记,比如上标、下标等。其实,ArcGIS早就为大家想好了这些问题。在ArcGIS中,已经预置了一部分特殊标记的方法,它们的使用类似于HTML的标签,如果读者对HTML语法熟悉的话,那么想必下面的内容就不会有障碍。

ArcGIS中的特殊标记、注记方法有以下的种类:

元素描述 起始标签 结束标签 有效的属性值 备注 示例语法

字体名称和/或字号

<FNT>

</FNT>

name = {TrueType font} size = {1} scale = {1-}

设置名称、大小和比例,或全部设置。

<FNT name = "Arial" size = "12">Text size = 12</FNT> <FNT name = "Arial" scale="200">Text scale = 200</FNT>

颜色
(RGB)

<CLR>

</CLR>

red, green, blue = {0-255}

缺失的颜色属性假定为 0

<CLR red = "255">Text</CLR>

颜色 (CMYK)

<CLR>

</CLR>

cyan, magenta, yellow, black = {0-100}

缺失的颜色属性假定为 0

<CLR magenta = "100">Text</CLR>

粗体

<BOL>

</BOL>

 

<BOL>Text</BOL>

斜体

<ITA>

</ITA>

 

<ITA>Text</ITA>

下划线

<UND>

</UND>

 

<UND>Text</UND>

全部大写

<ACP>

</ACP>

 

<ACP>Text</ACP>

小型大写字母

<SCP>

</SCP>

 

<SCP>Text</SCP>

上标

<SUP>

</SUP>

 

E = mc<SUP>2</SUP>

下标

<SUB>

</SUB>

 

H<SUB>2</SUB>O

字符间距

<CHR>

</CHR>

spacing = {1-}

表示相对于常规字符间距的调整百分比;0% 表示没有调整。

<CHR spacing = "200">Text</CHR>

字符宽度

<CHR>

</CHR>

 

表示相对于常规字符宽度的调整百分比;0% 表示没有调整。

<CHR width="150">Text</CHR>

词间距

<WRD>

</WRD>

spacing = {1-}

表示词间的间距百分比;100% 表示常规间距。

<WRD spacing = "200">Extra Word Spacing</WRD>

行间距

<LIN>

</LIN>

leading = {1-}

表示相对于常规行间距的调整(单位为磅);0 磅表示没有调整。

<LIN leading = "25">Text with a leading value of 25 points</LIN>

不加粗

<_BOL>

<_/BOL>

 

The base text symbol is bold, <_BOL> but this part is not.</_BOL>

不倾斜

<_ITA>

</_ITA>

 

The base text symbol is italic, <_ITA> but this part is not.</_ITA>

不加下划线

<_UND>

</_UND>

 

The base text symbol is underlined, <_UND> but this part is not.</_UND>

不加上标

<_SUP>

</_SUP>

 

<SUP><_SUP> This text is regular, but </_SUP> this text is superscript.</SUP>

不加下标

<_SUB>

</_SUB>

 

<SUB><_SUB>This text is regular, but </_SUB> this text is subscript.</SUB>

]]>
http://www.sunzx.net/archives/1899.html/feed 4
ArcGIS利用点提取栅格像元值 http://www.sunzx.net/archives/1883.html http://www.sunzx.net/archives/1883.html#comments Mon, 01 Oct 2012 09:47:10 +0000 http://www.sunzx.net/?p=1883 废话少说,直奔主题。

现在有一个DEM和一个shape点文件,名称分别为“DEM”和“POINT”。将两者叠加后每个点会落在栅格数据的某个像元中,分文介绍如何将每个点所在的栅格像元值赋予其上的点。

将两个文件加载到ArcGIS的TOC窗口中,打开Toolbox,依此找到Spatial Analyst Tools—>Extraction—>Extract Value to Points,如图1所示。

双击打开Extract Value to Points,按照图2进行设置。

图1  Extract Value to Points在ArcToolbox中的位置
图1  Extract Value to Points在ArcToolbox中的位置

图2  Extract Value by Points对话框设置
图2  Extract Value by Points对话框设置

设置完成后点击OK进行计算,待计算结束后,提取出栅格像元值的点文件会自动添加到当前的TOC窗口中。打开属性表可以看到多了一列名为“RASTERVALU”的字段,该字段中存储的就是每个矢量点对应的栅格数据的像元值,在这里即为高程值。如图3所示。

图3  提取后的栅格像元值
图3  提取后的栅格像元值
]]>
http://www.sunzx.net/archives/1883.html/feed 6
EndNote连接Web of Science设置 http://www.sunzx.net/archives/1873.html http://www.sunzx.net/archives/1873.html#comments Mon, 03 Sep 2012 12:42:09 +0000 http://www.sunzx.net/?p=1873 安装EndNote后,无法通过其内置的搜索功能直接对Web of Science数据库进行检索。这是由于EndNote连接设置的问题,通过修改设置,可以解决该问题。

首先,点击EndNote菜单的“Edit”→“Connection Files”→“Open Connection Manager…”(如图1所示),打开EndNote Connection Files的管理对话框。

图一  打开EndNote连接管理对话框
图一  打开EndNote连接管理对话框

其次,在EndNote Connection Files的管理对话框中,找到Web of Science(TS),在其上点击鼠标右键,在弹出的环境菜单中选择“Edit Connection…”(如图2所示),对该连接进行编辑。

图2  编辑Web of Science链接
图2  编辑Web of Science链接

第三,在弹出的连接编辑对话框中,点击左侧的“Connection Settings…”,在右侧会列出与该项相关的设置,将其中“Server Address”更改为图3右侧红色线框所示的地址,然后点击文件菜单中的“Save”保存更改,保存完毕后关闭该对话框即可。

图3&nbsp;&nbsp;更改Server Address地址
图3  更改Server Address地址

第四,点击主菜单中的“Edit”→“Preferences”,打开设置对话框。点击左侧的“URLs & Links”,将右侧出现的“ISI Base URL”更改为图4红色线框所示的地址,点击确定保存。

图4  更改ISI Base URL地址
图4  更改ISI Base URL地址
]]>
http://www.sunzx.net/archives/1873.html/feed 3
Arc/Info Workstation下用APPEND进行图幅拼接 http://www.sunzx.net/archives/1856.html http://www.sunzx.net/archives/1856.html#comments Thu, 23 Aug 2012 11:08:51 +0000 http://www.sunzx.net/?p=1856 虽然现在ArcGIS Desktop成为GIS软件的主流,使Arc/Info Workstation逐渐淡出了人们的视线,但是Workstation的功能是不容小觑的,特别是在进行数据批量处理时,Workstation非常方便。通过它自带的ARC宏语言,可以便捷的实现数据的批处理。本文主要介绍使用Workstation进行大量数据的图幅拼接。

比如有很多分幅的等高线地图,文件格式为Coverage,现在需要将这些分幅的等高线地图合并为一整幅的地图,那么可以使用Workstation下的APPEND命令。

APPEND命令的具体用法如下:

APPEND {NOTEST | template_cover | feature_class… feature_class} {NONE | FEATURES | TICS | ALL}

其中:

为输出图层的路径和名称,如果在当前工作空间输出则不需要指定路径。

{NOTEST}为所有APPEND要素的位置信息。

{template_cover}用来指定APPEND时使用的模板,其它文件都是APPEND到这个文件上。

{feature_class…feature_class}用来指定用于APPEND的文件,包括POINT,LINE,POLY,NODE,NET,LINK,ANNO,SECTION,ROUTE和REGION。

{NONE | FEATURES | TICS | ALL}指定TIC点和Coverage要素在输出文件中如何编号。

比如说现在有四幅Coverage格式的分幅地图,文件名分别a1、a2、a3和a4。现在要将这四幅地图合并为一幅,可以将下面的代码写入一个txt文件,将该文件重命名为APPEND.AML,放在当前工作目录下。假设当前的工作目录为D:\Workspace\。

APPEND out_cov a1 all
a1
a2
a3
a4
end

其中,APPEND为命令;out_cov为输出文件名称;a1为template_cover;all表示对TICs和要素都进行编号。

文件保存好以后,在Workstation的arc提示符下,输入&run APPEND.AML,等待运行结束后,就可以在工作目录下看到APPEND后的out_cov文件了。虽然提示有错误,但是确实已经运行成功了。

图1    APPEND运行结果
图1    APPEND运行结果

注意:如果合并的文件并没有在当前工作目录下,那么需要指定文件的绝对路径。

]]>
http://www.sunzx.net/archives/1856.html/feed 2