ArcGIS Server

MXDPerfStat - Map Document Performance Analyzer

MXDPerfStat

  • Developed by ESRI, but is an unsupported tool which requires ArcGIS Desktop or ArcGIS Engine.
  • It is a command line tool, but don't let that scare you. With a .bat file it is very easy to run (see below).
  • Can be downloaded at ArcScripts: http://arcscripts.esri.com/details.asp?dbid=15570

What does it do?

  • Opens up the specified MXD in an engine app and runs through all the layers at specified scales
  • Measures the draw time of each layer at each scale
  • Outputs a XML file that has all of the stats in a few nice tables (uses a XSL file to style the XML file)
  • Tells you some good information for each layer at each scale, like how many features/vertices were drawn
  • Gives you recommendations when the draw time is over preset tolerances, such as "set scale dependency," or "simplify geometry"

Where do I use this?

  • Publishing optimized dynamic map services on ArcGIS Server
  • Using MXD's in a production environment where you want to make the map as fast as possible (i.e. ArcGIS Engine app)

Limitations

  • Maplex license needs to be single use (not a floating license)
  • Does not support WMS layers
  • Does not support Image Server layers

Setting up the .bat file

  • Create a .bat file with Notepad in the same location as MXDPerfStat.exe
  • In the .bat file type in (remove quotes): "MXDPerfStat -MXD" followed by the path to the MXD
  • If the path to the MXD has spaces in it, put quotes around the path
  • If you don't put in any thing else it will use default scales and choose the center of the MXD as the coordinate it zooms to at larger scales (closer in)
  • Scale can be added like this: "-scale 50000000;25000000;10000000;5000000;2500000;1000000;500000;250000;100000"
  • The location it zooms to can be added like this: "-xy 1633113.213;79654.84" where x,y are from the Dataframe Coordinate System in the MXD

At 9.3.1 ArcGIS Desktop includes a new toolbar called Map Service Publishing. It has an analyze feature that is similar to what MXDPerfStat, but doesn't completely replace it. We'll look into that another time.

ArcGIS Mobile Observations

I have been testing ArcGIS Mobile for possible use in an upcoming fieldwork project. I used the out of the box ArcGIS Mobile Application vs. the SDK. ArcGIS Mobile is an alternative way to do simple field collection using ArcGIS Server in the back end. You author maps using ArcGIS Desktop and Publish the Map Document (MXD) to a Map Service (with Mobile Data Access) which is used by a Mobile Project, then you load the ArcGIS Mobile App and your Project onto your Windows Mobile device and you are in business.

Here are some observations I had:

  • You probably already knew this, but you need ArcGIS Server Advanced, which isn't cheap. Remember if you have an EDN subscription you can test it out first.
  • Works great if all you need is simple field collection or verification. Easy to use and you don't have to go through lots of steps (pressing buttons) to capture a point or edit attributes. In other words, much easier to use than ArcPad, but not nearly as powerful or flexible.
  • Creating a new ArcGIS Mobile Project is just as easy as creating an out of the box Web Application
  • If you have access to WiFi in the field, you can be synchronizing with your server and getting updates from other fieldworkers as much as you want.
  • ArcGIS Mobile will use the symbology you setup in ArcMap, even field/attribute based symbology, so you can see the updates right on the map.
  • If you setup versions in ArcSDE, you could have many fieldworkers each with their own version (all separate ArcGIS Mobile Projects), so you can QC changes and then update changes to a common version.
  • Domains or Subtypes turn into dropdown menus in ArcGIS Mobile
  • Using a field with a type of Date, will automatically populate the current date and time into a field if you collect or edit the attributes in ArcGIS Mobile. I couldn't see the time directly in the field though, but it's there.
  • My big mistake was using field visibility in ArcMap for fields I didn't want. I could use it, but just not with the GlobalID field that you add when you version data in ArcSDE. All of the system fields: ObjectID, Shape... and GlobalID will not show up in the attributes in ArcGIS Mobile even if they are still visible in ArcMap. I assume that the data transferred to ArcGIS Mobile drops any fields that are not visible in ArcMap. The error I got was "Unknown error" when I tried to post data back to the server.
  • Don't make any big changes to MXDs after they have been put on your mobile device, that seemed to wreck it, i.e. changing the name of the layer in the TOC.
  • Overall it was easy to work with both setting up and in the field testing that I did.