|
POST
|
In ArcMap 10.7.1 (Oracle 18c SDE.ST_GEOMETRY): Using a geoprocessing tool, is there a way to identify polylines that have true curves? I know there is a hasCurves Geometry property in ArcPy for ArcGIS Pro. But I don't have access to Pro yet. And regardless, I'd rather use a GP tool for this, than ask my users to use a custom script. Thanks.
... View more
02-08-2022
11:29 AM
|
0
|
7
|
6153
|
|
IDEA
|
ArcPy: As far as I can tell, there isn't a way to create polyline vertices that have true curves. Could ESRI consider adding a method to the Polyline class for creating true-curve vertices?
... View more
02-07-2022
09:28 AM
|
3
|
2
|
1829
|
|
IDEA
|
Merged from a separate idea: Currently, there isn't a way to directly access a polyline's true curve information. We're aware that it's technically possible to access true curves indirectly via JSON. But that requires parsing the JSON text to grab the true curve info, which is slow and messy. It would be helpful if we had a cleaner way to access curves. Thanks.
... View more
02-07-2022
09:21 AM
|
0
|
3
|
4114
|
|
IDEA
|
In the ArcPy Geometry Class documentation, could ESRI provide more detailed information about the hierarchical structure of gemetries? For example, provide a hierarchical diagram, kind of like we have for the SDE.ST_GEOMETRY spatial type, but for the ArcPy Geometry class: Like this, but better: - Geometry
- PointGeometry
- Multipoint
- Point
- Polygon
- Ring (aka part)
- Point
- Polyline
- Path (aka part)
- Point That would help people who are trying to learn ArcPy understand how to access the various levels of the Geometry class. I know there is some info about that in the Cursor docs. But it doesn't explain the hierarchical structure of geometries. For example, as a novice, it was difficult to know how to iterate through a Polyline's components — to get at the individual points/vertices within a feature-part: import arcpy connection = "Database Connections\my_conn.sde" feature_class = connection + "\my_owner.my_fc" with arcpy.da.SearchCursor(feature_class, ["SHAPE@","OID@"]) as cursor: for row in cursor: geometry = row[0] print("Geometry/Polyline: {}".format(row[1])) for i, part in enumerate(geometry): print(" Part: {}".format(i)) for j, point in enumerate(part): print(" Point: {}".format(j)) >>> Geometry/Polyline: 100 Part: 0 Point: 0 Point: 1 Point: 2 Point: 3 Point: 4 Part: 1 Point: 0 Point: 1 It would help a lot if if we could get some more detailed information about the hierarchical structure. Thanks.
... View more
02-05-2022
03:07 PM
|
0
|
3
|
2059
|
|
POST
|
I have an ArcPy script that densifies polylines — to preserve any true curves that were in the features: (the curves become densified straight segments) with arcpy.da.UpdateCursor(fc, 'SHAPE') as cursor:
for row in cursor:
feature = row[0].densify ("ANGLE", 10000, 0.174533) #0.174533=radians Details: I don't want to densify straight segments, since that's not necessary here. I only want to densify the curved segments. So, in the densify function, I only really care about the TYPE and DEVIATION arguments. I don't need the DISTANCE argument, since all it seems to accomplish is adding vertices to straight segments (not what I want). densify (type, distance, {deviation})
densify ("ANGLE", 10000, 0.174533) #0.174533=radians With that said, I've noticed that the DISTANCE argument is mandatory. So I work around it by putting a dummy value of 10,000 meters in it, since there would never be a segment that big in my data. (I tried setting it to None but I got an error.) Question: Is there a reason why is the DISTANCE argument a required argument? Why can't it be optional, since for cases like mine, I don't want to specify it? Have I misunderstood something? Thanks.
... View more
02-04-2022
08:39 PM
|
0
|
1
|
1333
|
|
IDEA
|
I have a multipart polyline FC that has true curves (Oracle 18c SDE.ST_GEOMETRY). I want to update the coordinates of the vertices in the lines via ArcPy — without losing the true curves: import arcpy
connection = "Database Connections\my_conn.sde"
feature_class = connection + "\my_owner.my_fc"
spatial_reference = arcpy.Describe(feature_class).spatialReference
with arcpy.da.Editor(connection) as edit_session:
with arcpy.da.UpdateCursor(feature_class, "SHAPE@") as cursor:
for row in cursor:
geometry = row[0].densify("ANGLE", 10000, 0.174533)
parts = arcpy.Array()
for part in geometry:
points = arcpy.Array()
for point in part:
point.M = geometry.measureOnLine(point)
points.append(point)
parts.append(points)
row[0] = arcpy.Polyline(parts, spatial_reference)
cursor.updateRow(row) The script reconstructs and replaces the geometry of the lines. So, unfortunately, it removes the true curves from the shapes. Before running script: After running script: Idea: Could ESRI consider giving us a clean way to edit vertices — without removing the true curves from the SHAPE? - I don't want to densify the curves into straight segments...I want to keep the true curves. - It would be ideal if there were a clean way to do this; not a workaround like converting to JSON and parsing out the curve info from the JSON text (would be messy/fragile). For example, a simple method like this would be helpful: UpdateVertex (shape, partNum, vertexNum, [z, m]) #It wouldn't replace the shape or replace the vertex. It would *update* a coordinate in the vertex. #So the true curves would remain intact.
... View more
02-03-2022
09:53 PM
|
17
|
7
|
4268
|
|
POST
|
I know this post is ancient, but I'm struggling with true curves too. A question regarding this blurb: "I'll also point out that SDE data has a way to keep true curves out... See the blurbs about that buried in here: http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#geodatabases/using_t1450550752.htm" Do you happen to recall what part of that page tells us how to prevent true curves in SDE? In my case, I'm using SDE.ST_GEOMETRY / Oracle 18c / ArcGIS 10.7.1. Background info here: ArcPy: Edit vertex without removing true curves What column is true curve data stored in? (SDE.ST_GEOMETRY for Oracle) Update vertex via SQL — without reconstructing shape Idea: Determine if line has true curves via SQL (Oracle ST_GEOMETRY) Edit: I think @ChrisSnyder was referring to SDO_GEOMETRY, not ST_GEOMETRY. So that wouldn't help me.
... View more
02-03-2022
02:22 PM
|
0
|
0
|
7922
|
|
POST
|
FYI - I submitted an ArcGIS Idea about this topic: Determine if line has true curves via SQL (Oracle ST_GEOMETRY) But I doubt ESRI will ever look at it. They don't seem to be interested in improving ST_GEOMETRY.
... View more
02-03-2022
12:40 PM
|
0
|
0
|
2049
|
|
IDEA
|
Currently, it's not possible to determine if a SDE.ST_GEOMETRY line has true curves via SQL. For example, select lines where the SHAPE contains at least one true curve: Could ESRI consider adding a function to SDE.ST_GEOMETRY (Oracle) for this purpose? Something like: SDE.ST_HasCurves() Thanks.
... View more
02-03-2022
06:24 AM
|
0
|
2
|
1967
|
|
POST
|
Thanks asking! Re: "You want to convert the vertices defining your line to points and then calculate the length of the line up to that point into an M-Value field?" Actually no, I don't want to convert the vertices to points. I want to update the M-values that are stored in the vertices of the polyline. M-values are similar to the X, Y, and Z coordinates of a given vertex...X, Y, Z, and M are stored in the SHAPE column of the feature (not in numeric fields/attributes). "Are you actually using linear referencing or was that just an example or are the vertices just vertices along a linear feature?" Yes, we're actually using linear referencing. We have a CONSTRUCTION_PROJECTS table (non-spatial) that has EVT_FROM and EVT_TO fields. We use that table to plot construction events along portions of lines via a linear referencing event layer (more info here). In our case, our M-values are always exactly the same as the cumulative distance of the line. If we could, we wouldn't even use the M-values, and just use the length of the line. But I don't think that's possible. So we want to find a way to automatically set the M-values to the cumulative length of line. If I can figure out how to do it with SQL, then I'll use that SQL to create a Oracle trigger that will update the M-values if a user creates a new line or edits the shape of an existing line. That would be a lot better than relying on a user to do it manually when creating or editing a line: Cheers.
... View more
02-02-2022
03:17 PM
|
0
|
0
|
1455
|
|
IDEA
|
It would be helpful if there were a out-of-box GP tool that could batch-replace geometries from one FC to another — via a tabular relationship. Example: I have a polyline FC called FC-A. And I have an additional polyline FC called FC-B. I want to update the shapes in FC-A with the shapes from FC-B. I want to update the existing SHAPE values, without replacing the FC or replacing the records. The link between the two FCs is a tabular ID field. Currently, I don't think there are any tools that can do that.
... View more
02-01-2022
12:18 PM
|
4
|
7
|
4493
|
|
POST
|
ArcGIS Enterprise/ArcMap 10.7.1 — Oracle 18c — SDE.ST_GEOMETRY I have a polyline FC called FC-A. And I have an additional polyline FC called FC-B. I want to update the shapes in FC-A with the shapes from FC-B. I want to update the existing SHAPE values, without replacing the FC or replacing the records. The link between the two FCs is a tabular ID field. I don't want to use a spatial relationship to link the two FCs. I think that would be unnecessarily messy. I've got a tabular relationship and I'd prefer to use it. Question: Are there any out-of-the-box tools in ArcMap that can batch-replace geometries from one FC to another via a tabular relationship? I know it would be possible with a SQL UPDATE script. But my users aren't SQL client users, so I'm looking for an OOB solution.
... View more
02-01-2022
11:24 AM
|
0
|
0
|
508
|
|
IDEA
|
Oracle; SDE.ST_GEOMETRY: For existing SDE.ST_GEOMETRY polylines that have M-values (aka 'measure values' for linear referencing purposes). It would be really helpful if ESRI could add a ST_GEOMETRY SQL function that could be used to UPDATE the M-values to the cumulative length of line. In other words, if we look at the image below, the M-values would be updated so that they're the same as the length of the line at a given vertex. Could ESRI consider adding a function for that? I believe it would be the equivalent of Oracle Spatial's REDEFINE_GEOM_SEGMENT function. Thanks.
... View more
01-31-2022
07:47 AM
|
0
|
0
|
421
|
|
POST
|
ArcGIS 10.7.1; Oracle 18c; SDE.ST_GEOMETRY: I have existing SDE.ST_GEOMETRY polylines that have M-values (aka 'measure values' for linear referencing purposes). I want to UPDATE the M-values via Oracle SQL. In my case, the M-values should be the same as the cumulative length of the line. In other words, if we look at the image below, the M-values should be the same as the length of the line at a given vertex. Using SQL, is there a way to set the M-values to the cumulative length of the line? I'm specifically looking for an Oracle SQL solution. Thanks.
... View more
01-31-2022
07:11 AM
|
0
|
2
|
1542
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | 2 weeks ago | |
| 1 | 2 weeks ago | |
| 1 | 03-19-2026 09:29 AM | |
| 2 | 2 weeks ago | |
| 1 | 2 weeks ago |