Windows任务计划实现自动执行ArcGIS相关功能

来源:互联网 发布:数据库怎么看表格 编辑:程序博客网 时间:2024/05/16 05:01

今天一不小心点开了Windows任务计划,以前咩有怎么用过,发现还挺好用,于是想到了以前用户的一些问题

1:用户环境使用ArcSDE服务连接,每次运行到一定的负载量(可能是几天),就会很慢,用户就喜欢重启一下ArcSDE服务就可以解决了。

对该问题,我们不去探究用户的环境为什么会慢,既然他重启ArcSDE服务就可以解决问题,那么我们可以使用Windows的任务计划来执行以及写好的ArcSDE服务重启脚本,这样我们就可以定期重启ArcSDE服务来解决该问题了。

只需要写一个简单的bat文件即可

-- 关闭ArcSDE服务sdemon -o shutdown -i 5151 -p sde--等一些时间sleep(5)--启动ArcSDE服务sdemon-o start -i 5151 -p sde

这样就可以来解决用户问题了。


2:有些用户经常会使用GP工具来做一些相关的功能操作,可能有些东西就是机械的对数据进行操作,有些时候可能要等比较长的时间,那么用户就会咨询一下,我是否可以使用自动化的功能,定时来执行相关的GP工具呢?

以前给用户的答复就是不可以,因为这些GP工具不能脱离ArcMap的进程,也就是必须在ArcMap里面执行,这样肯定不可以。

但是当时并没有考虑Python与GP工具的结合,我们完全可以将GP工具写道Python脚本里面来进行相关的批量操作啊!

我们将相关的GP环境比如数据源路径、名称、参数等都写在Python里面,到时候定期执行就可以了。

其实对ArcGIS来说,重复性、必要性的工作比较多

  • 定期重建索引
  • 定期版本压缩
  • 定期分析数据

以下是一个重建索引的例子

from arcpy import *env.workspace=r'Database Connections\Connection to 192.168.100.111.sde'        for dataset in ListDatasets():    for fc in ListFeatureClasses("","ALL",dataset):        RemoveSpatialIndex_management(fc)        AddSpatialIndex_management(fc)

通过查看任务计划可以查看相关任务是否允许完成或者有问题,如下图可以得到,是不能在非ArcMap环境下执行运行GP工具的


TIPS:对没有写过Python的用户其实并不需要担心什么,如果你有现成的Modelbuilder模型,那么可以使用Export to python Scripts来获得相关的python脚本即可



延伸学习:

在 Linux 中,创建一个 cron 文本文件,其中包含希望脚本运行的日期和时间信息,然后使用 crontab 程序将该文件加载到 cron 中。

例如,以下信息将 Python 脚本(名为 rsysidxdb2.py)设置为在每个星期三晚上 10:00 运行:

0 22 * * 3 /usr/bin/rsysidxdb2.py

有关 cron 的使用信息,请参阅随 Linux 安装提供的 Linux 手册页。


-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
------------------------------------------------------------------------------------------------------

原创粉丝点击