POST
|
Maybe you could export as tempoarary layer files and then import the symbology over each layer in the subsequent data frames. Of course this doesn't solve the labelling but may be 50% of what you need.
... View more
02-08-2012
03:59 PM
|
0
|
0
|
934
|
POST
|
I remember coming across this problem when I was back on 9.2 a few years ago. Sorry to say I can't remember the fix so don't have an exact solution but it is a matter of tweaking the setup and/or installer. My suggestion would be to ensure that the target machine has all of the same framework and ArcGIS service packs as the dev machine .NET version in particular. You will almost definitely need the Admin permissions to install so keep using those but I wouldn't take the fact that installs on the dev box as 100% proof that the installer MSI/EXE is setup correctly but is 95% likely to be working.
... View more
02-08-2012
03:52 PM
|
0
|
0
|
655
|
POST
|
I don't have a specific solution to your problem as specific code but I have a general suggestion for working with NetCDF. Having said that I have made similar code for NetCDF data but have taken a different approach structurally with my code and have not run into any problems. Essentially I have split this code into three sections that are tied together with my main function but can be run consecutively as seperate functions. Firstly I extract the data to individual rasters. Then there is a bit of metadata stuff that I retrieve from external sources. Then I add the info to a mosaic dataset. If you split your code into parts as opposed to dealing with it in nested loops I think you are less likely to run into memory problems. I also find code like this easier to debug but that is just personal preference.
... View more
02-05-2012
06:07 PM
|
0
|
0
|
295
|
POST
|
I think it is because you are using back slashes not forward slashes. Back slash is an exit code in Python that is used to insert special characters and other info.
print "Hello\nWorld"
Would result in output: Hello World rather than: Hello\nWorld as you may have expected. This is because in Python "\n" refers to a new line rather than the backslash character and the letter n. Other examples are "\r" for carriage return and "\t" for tab. Either change the back slash to forward slash "/" as shown in the code or Double up the back slash e.g. "\\" so you are confirming that backslash is what you wish to use.
... View more
02-01-2012
07:22 PM
|
0
|
0
|
372
|
POST
|
Essentially what you are trying to do is extend a straight line. As all straight lines can be represented by a linear equation once you solve this you can extend it easily. Luckily linear equations are super easy. I'm not sure how good your linear algebra is but here is a link to a site with a nice simple tutorial on solving the slope given x and y. It is a little bit down from the top of the page. http://www.purplemath.com/modules/strtlneq2.htm Use X1, Y1 and X2, Y2 with each other to get either X1, Y2 or vice versa to make a triangle. Then you can solve the straight line length with the triangle using Pythagorean theory. Once you have the length I think it would be easy to use a loop to iterate through possible XY coordinates that will get you the right value length or the better solution may be to find and balance an equation that will give you the appropriate info but I can't think of what this is off the top of my head. I reckon there is probably something in Numpy or some such mat module to do most of the work for you but it is probably just as easy to write from scratch.
... View more
01-30-2012
02:48 PM
|
0
|
0
|
245
|
POST
|
I think I know what you are asking for given your question but your code really doesn't make sense. Maybe try nfc_list.append(layer) Maybe if you commented exactly what each part is suppoosed to be doing. For example I am not sure why you are trying to get a list of feature classes from layers. I don't think 'layer' is an appropriate argument for arcpy.ListFeatureClasses() You could also try
fcList = arcpy.listFeatureClasses()
for fc in fcList:
nfc_list.append(fc)
... View more
01-24-2012
09:18 PM
|
0
|
0
|
711
|
POST
|
This works for Add-In reference, as long as you reference the appropriate Templates location. ESRI.ArcGIS.Framework.ITemplates templates = ArcMap.Application.Templates; System.Windows.Forms.MessageBox.Show(template.get_Item(template.Count - 1).ToString());
... View more
01-23-2012
08:41 PM
|
0
|
0
|
235
|
POST
|
Not sure to be honest as I have not encountered this problem myself. You may get a better and or faster answer if you repost in the desktop forum rather than the python section but I will give it a go. My suggestion is to convert the data to another format and try again. For example if it is a JPG image convert it to GIF, BMP etc or vice versa depending on the original format.
... View more
01-22-2012
04:59 PM
|
0
|
0
|
306
|
POST
|
I don't think you can 'insert' an image into a map layout as this would involve creating a new page layout element. Python does not allow for the creation of Page Layout Elements as of version 10.0. What you could do is something like manually insert an image element in an MXD template and change it each time. This does not need to be anythin but a place holder image that would never be seen on the map. This could be located outside of the 'Page' area so it would not be visible on a print out. Then you could change this element to the desired picture and size then move it on to the Page instead of trying to create an element. If it is required that you create the element you may want to look at ArcObjects in .NET or Java which does provide this functionality.
... View more
01-19-2012
10:45 PM
|
0
|
0
|
306
|
POST
|
Kind of discussion and question at the same time I am hoping for an answer but not expecting one. I am using the NetCDF library and am having a problem with my Add-In button disappearing when I try to call the function: NetcdfFile.open("filename.nc") I have it sitting in a seperate class to my 'OnClick' tool as it is to be called and executed and return a value which will then be acted upon. Having said that it doesn't seem to matter where I put it. When I link to this class and the function is called the button disappears from my toolbar. If I comment out this single line and recompile the button reappears even if I still reference everything else in the class. Just to note. This Class and its functions work perfectly fine if I run it as a Java Application, that is if I do not try to use it in ArcGIS. I am sure it would work within ArcGIS also it's just that I can't fire it if there is no button to start the execution. Has anyone else had the same problem of tools disappearing in ArcGIS, possibly with other libraries? If so did you find a solution?
... View more
01-19-2012
04:38 PM
|
0
|
0
|
486
|
POST
|
Okay, I think I have it right. But unfortunately it is still failing so I must be doing someting wrong. I have used exactly your code but replaced the old column numbers with the new ones ie 1 = 3, 0 = 2. Which is what I think you were referring to.
layer.replaceDataSource(row[2], "CAD_WORKSPACE", row[3])
This translates roughly to:
layer.replaceDataSource("X:\New_CAD_Directory\CAD_File_1.dxf", "CAD_WORKSPACE", "Polyline")
I have checked the new dataset for any access issues but it works in ArcMap/ArcCatalog. The script is still failing with the same error.
... View more
01-03-2012
02:28 PM
|
0
|
0
|
843
|
POST
|
Thanks for your help. I have had a look at your code and I am still not able to figure out where I am going wrong but I am hoping if I explain what I am doing a little more clearly it will help you help me =D I have a CSV file from which I am reading four columns of which I will give an example below: ORIGINAL_NAME_COLUMN: "Polyline" ORIGINAL_PATH_COLUMN: "C:\CAD_Directory\CAD_File.dxf" NEW_NAME_COLUMN: "Polyline" NEW_PATH_COLUMN: "X:\New_CAD_Directory\CAD_File_1.dxf" I think it is important to note that I have changed the name of the CAD file which may be where I am falling down. For each layer to get rid of group layers etc I run:
if layer.supports("DATASOURCE") and layer.supports("WORKSPACEPATH"):
Then I loop through the rows in the CSV and compare it to the layer data source using the following code
if os.path.join(row[1], row[0]) == layer.dataSource:
which is equivalent to something like
if "C:\CAD_Directory\CAD_File.dxf\Polyline" == layer.dataSource:
If this succeeds I attempt to change the data source. As the Data Source in 'layer.DataSource' goes to the full DXF path then I have assumed this would be the code for the 'ReplaceDataSource' Now from your code I understand that you are pointing to a directory rather than the DXF as the data source. To continue using my example above Your code would be similar to:
layer.replaceDataSource(r"X:\New_CAD_Directory", "CAD_WORKSPACE", layer.name)
OR
layer.findAndReplaceWorkspace(r"C:\CAD_Directory", r"X:\New_CAD_Directory")
Where as my code looks like this:
layer.replaceDataSource(r"X:\New_CAD_Directory\CAD_File_1.dxf", "CAD_WORKSPACE", layer.name)
OR
layer.findAndReplaceWorkspace(r"C:\CAD_Directory\CAD_File.dxf", r"X:\New_CAD_Directory\CAD_File_1.dxf")
If the Data Source is only to the directory level then I am uncertain as to how to map to a new DXF name. Particularly if there are several CAD files in there as I would assume that it automatically use the original CAD file name if pointing to a directory. If the Data Source goes to the DXF level then I don't know why it is falling over.
... View more
12-29-2011
04:08 PM
|
0
|
0
|
843
|
POST
|
I've been trying to update the links to CAD that have had their name changed and have been moved to a different location but have had no changes made to the data itself. Essentially the Original Path and the New Path are taken from an existing List and the data is updated as either:
layer.replaceDataSource(unicode(DATA_PATH), FILE_TYPE, unicode(FILE_NAME))
OR
layer.findAndReplaceWorkspacePath(unicode(PREV_PATH), unicode(DATA_PATH))
Either way I get the same error: <type 'exceptions.ValueError'>: Layer: Unexpected error Failed to execute (BatchMxdDataSourceUpdate). Where "BatchMxdDataSourceUpdate" is the routine that I am running to update that MXD data sources. I am using the same code to loop through and update from SHP to GDB, GDB to GDB and also replacing Raster so I am not sure why it is not working for CAD files. Each has a different handler but is essentially the same syntax. In this case the CAD files are DXF but I have other instances of DWG that will also need to be updated in the future.
... View more
12-28-2011
08:38 PM
|
0
|
8
|
1432
|
POST
|
Okay so the code above works to get an System.Object called 'x' right but then I didn't know what to do because it should have been IEnum or some such according to the documentation but it is type ISet. So using the code I wrote before first test to see whether it is of type ISet. This is because other selected features can be included which makes it something else, can't recall off the top of my head what these other selected features might be but remember having the problem. If it is of type ISet then it is probably just the selected ToC layers, which is what you want right?, though I have not looked into it to much so if it falls over it could be something I never encountered. so some simple code is (in C#)
System.Object x = contentsView.SelectedItem
if ((x is ESRI.ArcGIS.esriSystem.ISet))
{
ISet set = (ISet) x;
int numSelectedLyr = set.Count
...blah blah whatever code you want....
}
I think this may get a bit tricky with Group Layers also but haven't tried that so keep it in mind. Hope that helps. If you're still confused post again and I will try to help you out with some better code or maybe a better explanation dependging on what you want.
... View more
12-04-2011
11:43 PM
|
0
|
0
|
372
|
POST
|
I'm having trouble using the Dimension Values (Optional) argument in arcpy.MakeNetCDFRasterLayer_md. Whatever I seem to do the output raster is always the first layer which is the default value. Below is my attempt to export all layers to raster in the time dimension.
def extractAllNetCDF():
variable = "RRt_10m"
x_dimension = "lon"
y_dimension = "lat"
band_dimension = ""
dimension = "time"
valueSelectionMethod = "BY_VALUE"
outLoc = "E:/New Folder/"
inNetCDF = "E:/netCDFFiles/RRt.nc"
nc_FP = arcpy.NetCDFFileProperties(inNetCDF)
nc_Dim = nc_FP.getDimensions()
for dimension in nc_Dim:
top = nc_FP.getDimensionSize(dimension)
for i in range(0, top):
if dimension == "time":
dimension_values = nc_FP.getDimensionValue(dimension, i)
nowFile = str(dimension_values)
arcpy.MakeNetCDFRasterLayer_md(inNetCDF, variable, x_dimension, y_dimension, nowFile, band_dimension, dimension_values, valueSelectionMethod)
arcpy.CopyRaster_management(nowFile, outLoc + nowFile + ".img", "", "", "", "NONE", "NONE", "")
print dimension_values, i
The print method at the end will show the dates as they should be and the index i is also moving alon so there is no reason to think that there are other problems with the code other than the Dimension Value being incorrect and reverting to the default. Does anyone have any idea how to get the subsequent layers to export? Is there any code online that has a specific example of this using the Dimension Value argument other than empty quotes?
... View more
11-09-2011
12:39 AM
|
0
|
0
|
553
|
Title | Kudos | Posted |
---|---|---|
2 | 09-05-2011 08:13 PM | |
1 | 09-14-2011 08:00 PM |
Online Status |
Offline
|
Date Last Visited |
01-07-2024
04:01 PM
|