Bài 30 · ArcGIS Pro trong phân tích không gian BĐS

Calculate Field: tạo biến thuộc tính từ dữ liệu hiện có

Calculate Field: tạo biến thuộc tính từ dữ liệu hiện có là Bài 30 của chuyên đề ArcGIS Pro trong phân tích không gian BĐS. Dùng Calculate Field để tạo/cập nhật biến BĐS từ dữ liệu hiện có bằng Python, Arcade hoặc SQL tùy ngữ cảnh; kiểm kiểu field, Null, selection/filter và lưu biểu thức để tái lập.

Biên soạn: ThS. Nguyễn Mạnh Hùng
GV. Khoa QLĐĐ&BĐS – ĐH Nông Lâm TP.HCM
Email: nguyenmanhhung@hcmuaf.edu.vn

Cập nhật 02/10/2026: Nội dung thao tác được đối chiếu với tài liệu chính thức ArcGIS Pro 3.6 của Esri. Tên nút, tab, pane hoặc công cụ có thể khác nhẹ theo bản vá, ngôn ngữ giao diện và giấy phép.

Lưu ý: trong GIS BĐS, một lớp hiển thị đúng chưa đủ để kết luận dữ liệu đúng. Luôn kiểm source, spatial reference, đơn vị, selection/filter, trạng thái chỉnh sửa và đầu ra trước khi đo, tính toán hoặc chồng lớp.

Mục tiêu học tập

  • Hiểu đúng khái niệm ArcGIS Pro của bài và ranh giới của công cụ.
  • Biết dữ liệu đầu vào, metadata và điều kiện phải kiểm trước khi thao tác.
  • Thực hiện workflow có thể lặp lại và giải thích được.
  • Nhận diện lỗi thường gặp trước khi chúng lan sang phân tích BĐS.
  • Lưu project, output và nhật ký xử lý đủ để người khác kiểm chứng.

Vị trí trong lộ trình 96 bài

Bài thuộc Chương 4 – Biên tập và quản lý dữ liệu. Bài 25–30 chuyển từ chuẩn hóa hệ tọa độ sang tạo/chỉnh geometry và thuộc tính: Create Features, Snapping, Modify Features, Edit Vertices, Calculate Geometry Attributes và Calculate Field. Mục tiêu là sửa dữ liệu có kiểm soát, không biến thao tác chỉnh sửa thành thay đổi thiếu dấu vết.

1. Calculate Field cập nhật hàng loạt

Esri mô tả công cụ tính giá trị field bằng expression cho feature class, feature layer, table hoặc raster phù hợp.

Đây là thao tác dữ liệu thật.

Liên hệ BĐS: hãy nói rõ đối tượng đang xử lý là thửa đất, công trình, điểm khảo sát, đường, tiện ích, vùng nghiên cứu hay bảng thuộc tính. Một công cụ giống nhau nhưng hậu quả nghiệp vụ khác nhau theo loại dữ liệu và nguồn.

2. Tool có thể sửa field hiện có

Tài liệu Esri cảnh báo Calculate Field modifies input.

Không thử expression trực tiếp trên master không backup.

Kiểm dữ liệu trước thao tác: mở Source Properties/Attribute Table, kiểm số feature/row, field quan trọng, spatial reference, selection/filter và đường dẫn dữ liệu. Không chạy công cụ khi chưa biết mình đang sửa lớp nào.

3. Có thể tạo field mới ngay trong tool

Nếu field chưa tồn tại, có thể chỉ định tên và Field Type.

Vẫn nên thiết kế schema trước.

Kiểm kết quả: sau thao tác phải so trước–sau bằng ít nhất một chỉ số định lượng như số feature, extent, diện tích, tọa độ, số Null hoặc số bản ghi được cập nhật. Ảnh chụp bản đồ chỉ là một lớp bằng chứng.

4. Expression types đa dạng

ArcGIS Pro hỗ trợ Python, Arcade, SQL và VBScript (deprecated) ở Calculate Field tùy workspace/ngữ cảnh.

Chọn loại dễ tái lập và phù hợp.

Tái lập: ghi công cụ, tham số, version dữ liệu, output path và lý do quyết định. Nếu người khác không thể mô tả lại thao tác từ hồ sơ, workflow chưa đủ tốt để bàn giao.

5. Python phù hợp logic xử lý dữ liệu

Ví dụ đơn giá, phân nhóm, xử lý chuỗi và code block.

Ghi expression/code block trong nhật ký.

Liên hệ BĐS: hãy nói rõ đối tượng đang xử lý là thửa đất, công trình, điểm khảo sát, đường, tiện ích, vùng nghiên cứu hay bảng thuộc tính. Một công cụ giống nhau nhưng hậu quả nghiệp vụ khác nhau theo loại dữ liệu và nguồn.

6. Arcade hữu ích trong hệ sinh thái ArcGIS

Field Calculation Arcade profile cho phép tính biểu thức theo context.

Không mặc định giống Python syntax.

Kiểm dữ liệu trước thao tác: mở Source Properties/Attribute Table, kiểm số feature/row, field quan trọng, spatial reference, selection/filter và đường dẫn dữ liệu. Không chạy công cụ khi chưa biết mình đang sửa lớp nào.

7. SQL có thể phù hợp datastore

Một số tính toán trên enterprise/data source có thể dùng SQL expression.

Cú pháp phụ thuộc database.

Kiểm kết quả: sau thao tác phải so trước–sau bằng ít nhất một chỉ số định lượng như số feature, extent, diện tích, tọa độ, số Null hoặc số bản ghi được cập nhật. Ảnh chụp bản đồ chỉ là một lớp bằng chứng.

8. Selection/filter được tôn trọng

Field calculation có thể chỉ áp selected/highlighted/filtered records tùy cách chạy.

Kiểm scope trước.

Tái lập: ghi công cụ, tham số, version dữ liệu, output path và lý do quyết định. Nếu người khác không thể mô tả lại thao tác từ hồ sơ, workflow chưa đủ tốt để bàn giao.

9. Null cần xử lý chủ động

Phép toán với Null có thể cho Null hoặc lỗi logic tùy expression.

Không thay Null bằng 0 vô thức.

Liên hệ BĐS: hãy nói rõ đối tượng đang xử lý là thửa đất, công trình, điểm khảo sát, đường, tiện ích, vùng nghiên cứu hay bảng thuộc tính. Một công cụ giống nhau nhưng hậu quả nghiệp vụ khác nhau theo loại dữ liệu và nguồn.

10. Kiểu field quyết định kết quả

Ghi số thực vào integer sẽ mất phần thập phân/cast; text length có thể giới hạn.

Schema trước expression.

Kiểm dữ liệu trước thao tác: mở Source Properties/Attribute Table, kiểm số feature/row, field quan trọng, spatial reference, selection/filter và đường dẫn dữ liệu. Không chạy công cụ khi chưa biết mình đang sửa lớp nào.

11. Đơn vị phải rõ

`gia_m2 = gia_trieu / dien_tich_m2` chỉ có ý nghĩa khi nguồn cùng đơn vị và denominator hợp lệ.

Kiểm chia cho 0.

Kiểm kết quả: sau thao tác phải so trước–sau bằng ít nhất một chỉ số định lượng như số feature, extent, diện tích, tọa độ, số Null hoặc số bản ghi được cập nhật. Ảnh chụp bản đồ chỉ là một lớp bằng chứng.

12. Phân loại điều kiện

Code block/Python function có thể tạo nhóm diện tích, khoảng cách hoặc trạng thái.

Ngưỡng phải có lý do nghiệp vụ.

Tái lập: ghi công cụ, tham số, version dữ liệu, output path và lý do quyết định. Nếu người khác không thể mô tả lại thao tác từ hồ sơ, workflow chưa đủ tốt để bàn giao.

13. Chuẩn hóa text

Có thể trim/upper/lower/replace nhưng cần giữ raw field nếu thay đổi khó hoàn tác.

Không phá mã gốc.

Liên hệ BĐS: hãy nói rõ đối tượng đang xử lý là thửa đất, công trình, điểm khảo sát, đường, tiện ích, vùng nghiên cứu hay bảng thuộc tính. Một công cụ giống nhau nhưng hậu quả nghiệp vụ khác nhau theo loại dữ liệu và nguồn.

14. Date calculation

Có thể tạo năm/tháng hoặc khoảng thời gian từ Date fields.

Không xử lý date như chuỗi nếu đã có kiểu Date.

Kiểm dữ liệu trước thao tác: mở Source Properties/Attribute Table, kiểm số feature/row, field quan trọng, spatial reference, selection/filter và đường dẫn dữ liệu. Không chạy công cụ khi chưa biết mình đang sửa lớp nào.

15. Calculate Field không thay Join

Nếu cần lấy giá trị từ bảng khác, Join/Join Field có thể cần trước.

Bài 31.

Kiểm kết quả: sau thao tác phải so trước–sau bằng ít nhất một chỉ số định lượng như số feature, extent, diện tích, tọa độ, số Null hoặc số bản ghi được cập nhật. Ảnh chụp bản đồ chỉ là một lớp bằng chứng.

16. Calculate Geometry khác Calculate Field

Geometry Attributes có property/method chuyên cho geometry; Calculate Field dùng expression chung và có thể truy geometry trong một số profile.

Chọn tool rõ mục tiêu.

Tái lập: ghi công cụ, tham số, version dữ liệu, output path và lý do quyết định. Nếu người khác không thể mô tả lại thao tác từ hồ sơ, workflow chưa đủ tốt để bàn giao.

17. Lưu expression và test trên subset/bản sao

Tính 10 records thử rồi kiểm trước khi chạy toàn bộ dataset.

Đặc biệt khi overwrite field.

Liên hệ BĐS: hãy nói rõ đối tượng đang xử lý là thửa đất, công trình, điểm khảo sát, đường, tiện ích, vùng nghiên cứu hay bảng thuộc tính. Một công cụ giống nhau nhưng hậu quả nghiệp vụ khác nhau theo loại dữ liệu và nguồn.

18. Kết luận

Calculate Field là công cụ biến đổi thuộc tính mạnh nhưng dễ gây thay đổi hàng loạt không hoàn tác nếu workflow yếu.

Expression phải có version và QA.

Kiểm dữ liệu trước thao tác: mở Source Properties/Attribute Table, kiểm số feature/row, field quan trọng, spatial reference, selection/filter và đường dẫn dữ liệu. Không chạy công cụ khi chưa biết mình đang sửa lớp nào.

Thao tác/công cụ trọng tâm

Attribute Table → Calculate Field toolbar hoặc Geoprocessing → Calculate Field; kiểm Field Type, Expression Type, selection/filter và backup.

Trong thực hành, ưu tiên bản sao hoặc dữ liệu lab trước khi sửa master. Nếu công cụ có khả năng cập nhật input trực tiếp, cần biết selection/filter hiện tại, có backup và phương án kiểm tra sau khi chạy.

Tình huống thực hành BĐS

Nhóm có `gia_trieu`, `dien_tich_m2`, `kc_metro_m`. Họ tạo `gia_m2`, `nhom_kc_metro` và `nam_ghi_nhan` bằng Python expressions, xử lý Null/0 rõ và lưu toàn bộ biểu thức trong file hướng dẫn.

Yêu cầu không chỉ là có output. Sinh viên phải giải thích được: nguồn dữ liệu, assumption, tham số, phần nào đã thay đổi, phần nào không thay đổi, rủi ro còn lại và bằng chứng nào cho thấy output đủ điều kiện dùng cho bước tiếp theo.

Ma trận quyết định nhanh

Tình huốngCách xử lý/công cụMục tiêuĐiểm phải kiểm
PythonLogic/Code BlockData transformationPhổ biến
ArcadeArcGIS profilePortable expressionsSyntax khác
SQLDatastore calculationDatabase-sidePhụ thuộc DB
Selection/filterScopeSubset updateKiểm
New fieldSchema+calcDerived variableType/unit

Quy trình thực hành 14 bước

  1. Xác định feature class/table sẽ chỉnh.
  2. Kiểm workspace và quyền edit.
  3. Kiểm layer editable/selectable/snapping.
  4. Ghi số feature và các field quan trọng.
  5. Tạo bản sao hoặc checkpoint.
  6. Thiết lập template/snapping/topology nếu cần.
  7. Thực hiện editing/calculation trên subset thử.
  8. Kiểm geometry/attributes sau subset.
  9. Mở rộng cho toàn bộ phạm vi cần xử lý.
  10. Kiểm selection/filter trước mọi update hàng loạt.
  11. So số feature, area/length/Null trước–sau.
  12. Save hoặc Discard Edits có chủ đích.
  13. Cập nhật edit/calculation log.
  14. Mở lại project để kiểm không broken và dữ liệu đúng.

Bài thực hành

Tạo ba biến dẫn xuất BĐS bằng Calculate Field, trong đó có một biến xử lý Null và một biến phân nhóm có lý do.

Sản phẩm sinh viên phải nộp

  • Expressions
  • Before–after table
  • Field schema
  • Selection QA
  • Calculation log

Những lỗi thường gặp

  • Tính trực tiếp master
  • Quên selection/filter
  • Chia cho 0
  • Null=0 vô thức
  • Sai field type
  • Không ghi unit
  • Không lưu expression
  • Dùng Calculate Field thay join

Lỗi 1 – Tính trực tiếp master: sinh viên phải tạo tình huống minh họa hoặc tìm một case trong dữ liệu lab, ghi dấu hiệu nhận biết, hậu quả và cách sửa. Sau sửa phải có bảng/ảnh before–after hoặc thông số kiểm chứng.

Lỗi 2 – Quên selection/filter: sinh viên phải tạo tình huống minh họa hoặc tìm một case trong dữ liệu lab, ghi dấu hiệu nhận biết, hậu quả và cách sửa. Sau sửa phải có bảng/ảnh before–after hoặc thông số kiểm chứng.

Lỗi 3 – Chia cho 0: sinh viên phải tạo tình huống minh họa hoặc tìm một case trong dữ liệu lab, ghi dấu hiệu nhận biết, hậu quả và cách sửa. Sau sửa phải có bảng/ảnh before–after hoặc thông số kiểm chứng.

Lỗi 4 – Null=0 vô thức: sinh viên phải tạo tình huống minh họa hoặc tìm một case trong dữ liệu lab, ghi dấu hiệu nhận biết, hậu quả và cách sửa. Sau sửa phải có bảng/ảnh before–after hoặc thông số kiểm chứng.

Lỗi 5 – Sai field type: sinh viên phải tạo tình huống minh họa hoặc tìm một case trong dữ liệu lab, ghi dấu hiệu nhận biết, hậu quả và cách sửa. Sau sửa phải có bảng/ảnh before–after hoặc thông số kiểm chứng.

Lỗi 6 – Không ghi unit: sinh viên phải tạo tình huống minh họa hoặc tìm một case trong dữ liệu lab, ghi dấu hiệu nhận biết, hậu quả và cách sửa. Sau sửa phải có bảng/ảnh before–after hoặc thông số kiểm chứng.

Phản biện chéo

Nhóm phản biện chọn ngẫu nhiên một feature hoặc record vừa sửa, lần ngược về trạng thái trước và kiểm selection, snapping/topology, attribute changes, IDs và geometry. Mọi thay đổi không giải thích được phải được xem là lỗi workflow.

Checklist QA cuối bài

  • Đúng project/workspace/dataset.
  • Source path và version đã ghi.
  • Spatial reference/units đã kiểm.
  • Selection/filter đã kiểm hoặc clear khi cần.
  • Không sửa raw/master ngoài chủ đích.
  • Công cụ/tham số được lưu trong History hoặc nhật ký.
  • Số row/feature trước–sau hợp lý.
  • Geometry/attributes của sample cases đã kiểm.
  • Tên field/output có unit/ý nghĩa rõ.
  • Không nhầm hiển thị đúng với dữ liệu đúng.
  • Có limitation nếu nguồn/độ chính xác chưa xác minh.
  • Có thể mở lại project và tái hiện kết quả.

Ghi nhớ trong 30 giây

  • Calculate Field sửa input
  • Expression type phải phù hợp
  • Selection/filter ảnh hưởng scope
  • Null và type cần kiểm
  • Lưu expression để tái lập

Nguồn tham khảo

Nguồn kỹ thuật chính là tài liệu chính thức Esri ArcGIS Pro 3.6. Ví dụ BĐS được dùng để chuyển khái niệm phần mềm thành tình huống thực hành; khi xử lý dữ liệu địa chính/pháp lý chính thức phải tuân thủ nguồn và quy trình nghiệp vụ tương ứng.

  • https://pro.arcgis.com/en/pro-app/3.6/tool-reference/data-management/calculate-field.htm
  • https://pro.arcgis.com/en/pro-app/3.6/help/data/tables/fundamentals-of-field-calculations.htm

Bài tiếp theo

Join Field và Add Join: ghép bảng thuộc tính theo khóa thế nào cho an toàn?.

Bài luyện tập mở rộng

Luyện tập 1

Python expression đơn giá.

Yêu cầu nộp: công cụ/tham số, ảnh hoặc bảng kiểm trước–sau, ít nhất một lỗi cố ý và cách phát hiện/sửa. Không chỉ nộp screenshot cuối.

Luyện tập 2

Null handling.

Yêu cầu nộp: công cụ/tham số, ảnh hoặc bảng kiểm trước–sau, ít nhất một lỗi cố ý và cách phát hiện/sửa. Không chỉ nộp screenshot cuối.

Luyện tập 3

Date-derived field.

Yêu cầu nộp: công cụ/tham số, ảnh hoặc bảng kiểm trước–sau, ít nhất một lỗi cố ý và cách phát hiện/sửa. Không chỉ nộp screenshot cuối.

Luyện tập 4

Selection trap test.

Yêu cầu nộp: công cụ/tham số, ảnh hoặc bảng kiểm trước–sau, ít nhất một lỗi cố ý và cách phát hiện/sửa. Không chỉ nộp screenshot cuối.

Phòng thí nghiệm kiểm lỗi

Tạo một bản sao dữ liệu chứa ba lỗi: snapping tắt làm hở cạnh, selection còn sót khi Calculate Field/Geometry, và một feature bị Move/Reshape nhầm. Nhóm phải dùng edit history, attributes và geometry QA để phát hiện, sau đó phục hồi hoặc sửa có reason code.

Biên bản QA mẫu

MụcTrướcSauKết luận
DatasetTên/versionĐã sửaĐúng
SelectionTrướcSauĐã kiểm
Features/rowsN trướcN sauHợp lý
Geometry/attributesGiá trị trướcGiá trị sauCó reason
Save/undoTrạng tháiKết quảĐã kiểm
ReopenChưaĐã mở lạiKhông broken

Câu hỏi tự luận cuối bài

  1. Giải thích vì sao “Calculate Field: tạo biến thuộc tính từ dữ liệu hiện có” có thể làm sai kết quả BĐS dù bản đồ vẫn nhìn hợp lý.
  2. Nêu một tình huống mà thao tác kỹ thuật đúng nhưng lựa chọn dữ liệu hoặc tham số sai.
  3. Thiết kế một bước kiểm chứng độc lập trước khi bàn giao output.
  4. Nêu bốn thông tin bắt buộc phải ghi trong nhật ký xử lý của bài.
📚 Xem toàn bộ 30 bài trong series ArcGIS Pro trong phân tích không gian BĐS