Skip to main content
Question

fme and arcpy - calling arcpy functions, where?

  • December 18, 2013
  • 3 replies
  • 18 views

I tr to execute the following arcpy function from a fme workbench:

 

 

arcpy.CalculatePolygonMainAngle_cartography("FeatureLayer", "poly_angle")

 

 

from the PythonCaller transformer to calculate a polygons main angle. What I can't really understand (as my python skills are absolute nonexisting) is how to wrap than inside the template function interface. I have tried to integrate the arcpy- function like this:

 

 

---

 

import fmeobjects

 

import arcpy

 

 

def angleFeature(feature):

 

    ang = arcpy.CalculatePolygonMainAngle_cartography("FeatureLayer", "angle")

 

    feature.setAttribute("angle", ang)

 

--

 

 

but when trying to run the workbench I get the following error

 

 

ERROR 000732: Input Features: Dataset FeatureLayer does not exist or is not supported

 

 

so Im stuck with the problem that the function cant find my source (wich is a Geodatabase_SDE reader. It also feels that once I get the features into the function, CalculatePolygonMainAngle will write the angle to the attribute "angle" and then fme will write it once again in feature.setAttribute.

 

 

I obviously dont know much python, perhaps someone else knows and might help out?

3 replies

fmelizard
Contributor
Forum|alt.badge.img+17
  • Contributor
  • December 18, 2013
Hi,

 

 

Cant help you much about the python, there are better experts for that in the community, but I can provide you with the FME solution: the PolylineAnalyzer transformer from the FME Store.

 

 

Hope this helps,

 

Itay

 


  • Author
  • December 18, 2013
Itay, I have thought about that transformer but couldn't find a way to use it as I couldnt find much . The ArcPy function calculates the "longest collection of segementsthat have similar orientation" The PolylineAnalyzer documentation is a little sparse, do you have any idea on how to use it instead?

fmelizard
Contributor
Forum|alt.badge.img+17
  • Contributor
  • December 18, 2013
Hi,

 

 

If I understand the definition correctly it would be a matter of testing the objects resulting from the PolylineAnalyzer for the object with the maximal lenght in the same azimuth/angle category.

 

All of these attributes are gathered by the transformer.

 

You can also test your FME results with the results of the script in the ESRI environment.

 

 

Itay

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings