ArcPy를 사용하여 파일 지오 데이터베이스에서 실제 곡선 타원형 다각형을 생성 하시겠습니까?


9

배경 으로이 질문은 Table To Ellipse 도구의 출력에서 ​​선으로 겹치는 다각형을 생성하는 방법에 대한 질문에 대한 답변에서 비롯되었습니다 .

ArcMap 10.1 GUI를 사용하면 Ellipse Construction Tool을 사용하여 진정한 곡선 다각형을 파일 지오 데이터베이스 피처 클래스로 디지털화하는 것이 매우 쉽지만 ...

중심점, 장축, 단축 및 방위각을 포함하는 테이블에서 행 (arcpy.da.SearchCursor)을 읽는 동안 실제 곡선 타원형 다각형을 작성할 수 있습니까?

arcpy.da.InsertCursor 와 함께 사용할 수있는 토큰이 있기를 바랐 지만 Geometry 객체가 지원 SHAPE@하는 것으로 제한되어 있으며 실제 곡선을 포함하지 않는 것으로 보입니다.


1
나는 주변을 검색했으며 약간 도움이 될 수있는 유일한 것은 this 입니다.
Paul

1
이를 위해이 Q & A가 도움이 될 것입니다. gis.stackexchange.com/questions/80/…
blord-castillo

이것에 대한 답변을 작성하려면 행복하게 공감하지만 ArcObjects 답변없이 ArcPy에 대한 수락을 남겨 둘 것입니다 (아무도없는 경우 ArcGIS Idea에 연결하여 제공 할 것입니다).
PolyGeo

나는 이것이 오래된 게시물이라는 것을 알고 있지만 arcpy로 이것을 할 수있는 해결 방법을 찾았습니다. 수학이 필요하지만 아래 답변을 참조하십시오.
crmackey

답변:


11

Arcpy Geometry 객체는 실제 곡선을 지원하지 않지만 10.3에서 Esri는 REST API에서 True Curves를 구현 했으므로 FeatureSets에서 JSON 지원을 구현해야했습니다. 따라서 JSON 구조에서 곡선만드는 경우이 작업을 수행하기 위해 아크 피를 "속일"수 있습니다 .

예를 들면 다음과 같습니다. 실제 곡선 (원호와 베 지어 곡선을 사용)으로 JSON 파일을 만듭니다.

{   'fieldAliases': {
        'Id': 'Id',
        'FID': 'FID'
    },
    'fields': [{
        'alias': 'FID',
        'type': 'esriFieldTypeOID',
        'name': 'FID'
    }, {
        'alias': 'Id',
        'type': 'esriFieldTypeInteger',
        'name': 'Id'
    }],
    'displayFieldName': '',
    'spatialReference': {
        'wkid': 103734,
        'latestWkid': 103734
    },
    'geometryType': 'esriGeometryPolyline'
    'features': [{
        'geometry': {
                      "curvePaths":[[
                        [6,3],[5,3],
                        {"b":[[3,2],[6,1],[2,4]]},
                        [1,2],
                        {"a":[[0,2],[0,3],0,0,2.094395102393195,1.83,0.33333333]}
                      ]]
                    },
        'attributes': {
            'Id': 0,
            'FID': 0
        }
    }],
}

그런 다음,이를 기능 세트에로드하여 Feature 클래스에 저장하십시오.

fs = arcpy.FeatureSet()
fs.load(r'C:\path_to_your_json_file.json')
arcpy.management.CopyFeatures(fs, r'in_memory\test_curve')

그리고 붐, 당신은 진정한 곡선을 가지고 있습니다! 이것이 ArcMap에서 만든 것입니다.

여기에 이미지 설명을 입력하십시오

따라서 귀하의 경우 원래 기능을 기능 세트로 캐스팅하고 JSON으로 재생하거나 검색 커서의 행을 반복하여 json 구조를 작성할 수 있습니다. 수학은 원하는 것을 얻는 데 약간 까다로울 수 있지만 확실히 가능합니다.


또한 전체 기능 세트를 구성 할 필요가 없으며 JSON 형상을 직접 전달하여 arcpy.AsShape(geojson, True)형상 객체를 다시 가져올 수 있습니다.


1

법적 설명에서 지리 데이터베이스로 수백 개의 소포를 가져와야 할 때도 같은 문제가 발생했습니다. COGO 도구는 우리가 진정한 곡선을 그리면서 유지할 수있는 유일한 도구였습니다. 불행히도 COGO 도구는 스크립팅 할 수 없습니다.

그러나 법적 설명을 txt 형식으로 변환하여 트래버스 창 에 로드하여 모양을 만들 수있었습니다 . 테이블 형식에 따라 (파이썬을 사용하여) 테이블을 txt로 변환 한 다음 트래버스 창에로드 할 수 있습니다.


오늘 저는 진정한 곡선 윤곽선을 FGDB로 가져오고 곡선 변환 애드 인을 가로 질러 실행하려고 했습니다 . 그것이 도움이되는지 확실하지 않지만, 진정한 곡선을 조작하는 데 유용하다고 생각했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.