zoukankan      html  css  js  c++  java
  • 转:Windows任务计划实现自动执行ArcGIS相关功能

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

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

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

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

    [python] view plaincopyprint?

    1. -- 关闭ArcSDE服务 
    2. sdemon -o shutdown -i 5151 -p sde 
    3. --等一些时间 
    4. sleep(5) 
    5. --启动ArcSDE服务 
    6. sdemon-o start -i 5151 -p sde 
    -- 关闭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来说,重复性、必要性的工作比较多

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

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

    [python] view plaincopyprint?

    1. from arcpy import * 
    2. env.workspace=r'Database ConnectionsConnection to 192.168.100.111.sde'
    3. for dataset in ListDatasets(): 
    4. for fc in ListFeatureClasses("","ALL",dataset): 
    5.         RemoveSpatialIndex_management(fc) 
    6.         AddSpatialIndex_management(fc) 
    from arcpy import *
    
    env.workspace=r'Database ConnectionsConnection 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 手册页。

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

    转摘地址:http://blog.csdn.net/linghe301/article/details/9923511

  • 相关阅读:
    crontab定时任务写法记录
    Django与Vue语法冲突问题完美解决方法
    Django下MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL解惑
    解决python2.x用urllib2证书验证错误, _create_unverified_context
    django 异步任务实现及Celery beat实现定时/轮询任务
    用Python写WebService接口并且调用
    django(权限、认证)系统——第三方组件实现Object级别权限控制
    django(权限、认证)系统—— 基于Authentication backends定制
    django(权限、认证)系统—— Permissions和Group
    [jmeter]linux下自动测试环境+持续集成ant+jmeter+Apache(httpd)环境搭建与使用
  • 原文地址:https://www.cnblogs.com/wenwu/p/3295931.html
Copyright © 2011-2022 走看看