2016-06-06 3 views
0

점을 만들려는 X 좌표와 Y 좌표를 만드는 공식을 사용했습니다. 그것들은 속성 테이블에 저장되어 있으며, 그 점들을 지오메트리에 사용하는 방법을 모른다. 코드는 다음과 같습니다.X, Y 좌표에서 점 생성 시도

cursor01 = arcpy.da.InsertCursor(OutPutCent,["[email protected]", "[email protected]","Xcoord","Ycoord","totpop", "NAME","STATE_NAME","POLY_ID", "OBJECTID", "STATE_FIPS", "CNTY_FIPS", "FIPS", "FIPSnum","FIPS_NUMER" ]) 
#if row[0] >= 5.2: 
cursor01.insertRow([XPoint,YPoint,centroid_X1,centroid_Y1,TotalPop1,thecntyName1,TheStateName1,idpoly1, idobject1, stateFIPS1, countyFIPS1, fips1, fipSnum1, fipsNumer1]) 

제안 사항을 보내 주시면 감사하겠습니다. 최고

답변

0

이것은 아마도 gis.stackexchange.com에 있어야합니다.

당신이 그 코드를 목표로하고 있다고 말하기는 어렵지만 어쨌든 나는 짐작할 수 있습니다 ... 속성 테이블의 업데이트 된 좌표에 따라 재배치하려는 기존 포인트가 있다면, 수행원.

간단한 노 스크립팅 솔루션은 이것이다 :

  • 수출 가져 오기 프로세스 중에 새 레이어

으로 CSV를 가져올 XY 데이터를 추가

  • 사용을 CSV로 당신의 속성 테이블 Xcode, Ycoord 속성 필드에 지오메트리를 설정하여 새 데이터 세트가 업데이트 된 위치를 갖도록 할 수 있습니다. 그런 다음 원하지 않는 레코드를 제거하십시오. 일부 값을 필터링하는 것처럼 보입니까? 속성에 의해 선택하고 조건에 맞지 않는 행을 삭제하십시오.

    또는, attibute 테이블에서 새로운 좌표 기존 형상을 업데이트 할 수있는 구조적으로 올바른 템플릿은 다음과 같습니다

    with arcpy.da.UpdateCursor(dataset, ['[email protected]', 'point_unique_id_or_name', 'conditional_field', 'X_coord', 'Y_coord']) as cursor: 
        update_count = 0 
        for row in cursor: 
         if row[conditional_field_index] meets condition: 
          updated_point = (row[X_coord_index], row[Y_coord_index]) 
          row[[email protected]_index] = updated_point 
          cursor.updateRow(row) 
          print "{} location updated".format(row[point_unique_id_or_name_index]) 
          update_count += 1 
    
    print "{} point locations updated".format(update_count) 
    

    당신 만 UpdateCursor에 관련 필드를 참조 할 필요가 - 그들이 내에서 참조되지 않는 경우 for 루프는 포함하지 마십시오.

    원본 데이터 집합의 복사본에 대해 연습하는 것이 좋습니다.

  • 관련 문제