天涯左岸 https://www.sunzx.net 记录工作和生活的点滴 Thu, 09 May 2019 14:52:35 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.2.2 手动为照片添加GPS等Exif信息 https://www.sunzx.net/archives/2297.html https://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" *.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信息

如需下载本文中提到的批处理文件,请移步本站下载区

]]>
https://www.sunzx.net/archives/2297.html/feed 0
利用Spatial Join统计斑块中的点数量 https://www.sunzx.net/archives/2282.html https://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”中存储了每个斑块的编号。

]]>
https://www.sunzx.net/archives/2282.html/feed 0
EndNote中重命名PDF附件 https://www.sunzx.net/archives/2171.html https://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重命名前的警告

]]>
https://www.sunzx.net/archives/2171.html/feed 2
利用Excel制作双Y轴图表 https://www.sunzx.net/archives/2124.html https://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中,具体步骤可能与上述步骤不同,读者可自行摸索。

]]>
https://www.sunzx.net/archives/2124.html/feed 0
ArcGIS中输入风格一致的带圈数字 https://www.sunzx.net/archives/2048.html https://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以上的带圈字符了 。

]]>
https://www.sunzx.net/archives/2048.html/feed 4
让ArcGIS 10.1支持VBA https://www.sunzx.net/archives/1915.html https://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兼容安装包放在了本站下载区,如果需要,请移步下载。

]]>
https://www.sunzx.net/archives/1915.html/feed 7
ArcGIS标注技巧(上标、下标等) https://www.sunzx.net/archives/1899.html https://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>
]]>
https://www.sunzx.net/archives/1899.html/feed 4
ArcGIS利用点提取栅格像元值 https://www.sunzx.net/archives/1883.html https://www.sunzx.net/archives/1883.html#comments Mon, 01 Oct 2012 09:47:10 +0000 http://www.sunzx.net/?p=1883 Extraction—>Extract Value to Points,设置相关参数,设置完成后点击OK进行计算,待计算结束后,提取出栅格像元值的点文件会自动添加到当前的TOC窗口中。]]> 废话少说,直奔主题。

现在有一个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  提取后的栅格像元值
]]>
https://www.sunzx.net/archives/1883.html/feed 7
EndNote连接Web of Science设置 https://www.sunzx.net/archives/1873.html https://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地址
]]>
https://www.sunzx.net/archives/1873.html/feed 3
Arc/Info Workstation下用APPEND进行图幅拼接 https://www.sunzx.net/archives/1856.html https://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运行结果

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

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