annotate contrib/python/FixWorkspacePaths.py @ 306:ea3fde77ea48

Catch generic Exceptions to avoid leaking them and creating silent errors
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 06 Sep 2012 18:56:20 +0200
parents 4dc2b9aa3c57
children
rev   line source
256
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
1 #
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
2 # Copyright (c) 2011 by Intevation GmbH, Germany <info@intevation.de>
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
3 #
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
4 # This file is part of MXD2map.
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
5 #
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
6 # This program is free software under the LGPL (>=v2.1)
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
7 # Read the file LICENCE.txt coming with the software for details
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
8 # or visit http://www.gnu.org/licenses/ if it does not exist.
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
9 #
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
10 # MXD2map has been developed on behalf of the
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
11 # Bundesamt fuer Seeschifffahrt und Hydrographie (BSH) in Hamburg
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
12 # by Intevation GmbH.
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
13 #
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
14 # Authors:
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
15 # Raimund Renkert <raimund.renkert@intevation.de>
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
16 # Bjoern Schilberg <bjoern.schilberg@intevation.de>
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
17 # Stephan Holl <stephan.holl@intevation.de>
4dc2b9aa3c57 Added LGPL header.
raimund renkert <raimund.renkert@intevation.de>
parents: 114
diff changeset
18
114
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
19 import arcpy, os
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
20
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
21 inputMXD = arcpy.GetParameterAsText(0)
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
22
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
23 newpath = r'C:\mxd-konverter\testdata-frida'
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
24
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
25 rootdir = inputMXD
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
26
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
27 for root, subFolders, files in os.walk(rootdir):
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
28 for file in files:
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
29 f = os.path.join(root, file)
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
30 if os.path.isfile(f):
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
31 basename, extension = os.path.splitext(f)
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
32 if extension.lower() == ".mxd":
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
33 print "Bearbeitet Dokument %s" % f
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
34 mxd = arcpy.mapping.MapDocument(f)
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
35 #Report broken sources
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
36 if len(arcpy.mapping.ListBrokenDataSources(mxd)) > 0:
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
37 for brkLyr in arcpy.mapping.ListBrokenDataSources(mxd):
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
38 if brkLyr.supports("dataSource"):
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
39 oldpath = brkLyr.dataSource
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
40 oldworkspace = brkLyr.workspacePath
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
41 print "Old dataSource-Path %s, old workspacePath %s " % (oldpath, oldworkspace)
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
42 # Replace
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
43 brkLyr.findAndReplaceWorkspacePath(oldworkspace, newpath)
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
44 print "Corrected path: %s" % brkLyr.workspacePath
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
45 print "Corrected dataSource: %s" %brkLyr.dataSource
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
46 mxd.save()
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
47 print "Wrote file %s" % f
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
48 print arcpy.GetMessages()
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
49 else:
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
50 print "keine kaputten Layer gefunden"
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
51
93699e8f2d1f contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Stephan Holl <stephan.holl@intevation.de>
parents:
diff changeset
52 del mxd
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)