Làm thế nào để theo dõi một lớp đường (mạng lưới đường) thông qua các điểm?


8

Tôi có mạng lưới đường (màu tím), tệp Điểm (màu xanh lá cây) và điểm bắt đầu (màu vàng).

Tôi muốn theo dõi các tập tin điểm dựa trên mạng lưới đường bộ. Hãy nghĩ về các điểm như các cột điện thoại, nhưng những gì tôi muốn là một bản đồ hiển thị các đường dây điện thoại (đường shapefile). Có một sơ đồ đánh số cho "các cột điện thoại" nhưng nó không tuyệt vời và trong trường hợp này tôi cũng sẽ cho rằng chúng không được đánh số.

Có ai có giải pháp không? Một thứ trông khá tốt là chỉ cần đệm các điểm và sau đó cắt mạng lưới đường từ bộ đệm. Nhưng tôi muốn một cái gì đó đầy đủ hơn. Nó cần được tự động hóa vì có 12.000 "cột điện thoại"

nhập mô tả hình ảnh ở đây


1
Làm thế nào để giải pháp bạn tìm kiếm khác với, chỉ đơn giản là chọn các tính năng đường đủ gần với bất kỳ điểm nào? Chính xác thì bạn có ý gì bởi "hoàn thiện hơn"?
whuber

Vâng, đoạn đường có thể kéo dài vượt qua điểm 1000 feet. Tôi đã sử dụng hoàn thành bởi vì khi tôi cắt từ bộ đệm, mạng bị chẻ. Những gì tôi nên nói là chính xác hơn.
Thad

1
Bạn nói đúng, bạn không muốn cắt từ bộ đệm! Có vẻ như bạn muốn bằng cách nào đó rút lại các đoạn đường mà các cực có thể nằm để các đoạn đó không vượt quá xa các cực của các cực. Nhưng làm thế nào bạn có thể phân biệt một khoảng cách dọc theo một quãng đường dài từ hai lần chạy khác biệt? Bạn có thể cung cấp một tiêu chí cho điều này?
whuber

Vâng, khoảng cách tôi không nghĩ sẽ là một vấn đề. Các đường màu đen đại diện cho các khu vực dịch vụ nhỏ nằm trong khu vực. Lý do, ngoài việc có nó để trực quan hóa, là để lập kế hoạch, và cuối cùng có thể thêm nhiều thông tin trong các tệp dòng hơn là có thể (có thể sử dụng) được lưu trữ trong các tệp điểm (ví dụ: đường kính).
Thad

Câu trả lời:


9

Có nhiều cách để giải quyết vấn đề này, nhưng một số ít nổi bật là chung chung và hiệu quả. Để hiểu điều này, hãy liệt kê một vài vấn đề có thể phải giải quyết:

  • Có thể có những khoảng trống giữa các cực rất lớn, thuật toán có thể xem các khoảng trống là sự phá vỡ thực tế trong hệ thống truyền tải.

  • Có thể có một số đoạn đường ngắn, rất quan trọng để kết nối các con đường vào mạng, tuy nhiên không có bất kỳ cực nào gần chúng. Các phân đoạn này sẽ không được chọn bởi sự gần gũi với các cực nhưng là một phần cần thiết của giải pháp.

  • Có thể có cực không thể truy cập bằng đường bộ từ điểm trung tâm. Các cực này có thể là một phần của các mạng truyền dẫn khác có nguồn gốc từ các điểm trung tâm khác.

Tôi cũng chấp nhận lập trường rằng vì bạn đã có một mạng lưới đa tuyến (các con đường), sẽ có lợi khi khai thác nó hơn là kết nối các điểm cực với một đa tuyến hoàn toàn mới, có khả năng không song song với đường rất tốt.

Những cân nhắc này cho thấy rằng các thành phần của một giải pháp tốt sẽ bao gồm một vài bước chính:

  1. Tính khoảng cách đường từ điểm trung tâm đến tất cả các cực.

  2. Xác định các cực có khoảng cách tối đa cục bộ dọc theo đoạn đường cụ thể của chúng : nghĩa là không có hàng xóm nào trong cùng đoạn có khoảng cách lớn hơn.

  3. Hình thành các đường dẫn ngắn nhất trở lại từ các cực đại cục bộ này đến điểm trung tâm.

Sự kết hợp của những con đường ngắn nhất này sẽ tìm ra mạng truyền dẫn. (Thật vậy, bước 2 không thực sự cần thiết, nhưng nó sẽ làm giảm đáng kể tính toán liên quan đến bước 3.)

Bước 1 và 3 có thể được thực hiện bằng cách sử dụng một đại diện mạng (trong Phân tích mạng) hoặc đại diện raster (trong Phân tích không gian, sử dụng phép tính CostDistance hoặc FlowAccumulation). Bước 2 là một bản tóm tắt cơ sở dữ liệu đơn giản: sau bước 1, mỗi cực sẽ có đoạn đường và khoảng cách làm thuộc tính. Tìm khoảng cách tối đa theo đoạn đường và chọn các cực đạt được các khoảng cách tối đa đó.

Có một số tình huống có thể xảy ra:

  1. Một số cực có thể không gần đường. Không có gì trong báo cáo vấn đề cho chúng ta biết những gì nên làm về những điều này. Chúng có thể được xử lý tự động bằng các tính toán raster (lưới chi phí phù hợp sẽ gán trở kháng cao cho các ô không phải đường, nhưng không phải là trở kháng vô hạn, cho phép các cực bị cô lập kết nối với các đường gần nhất, nhưng không phải với nhau), không may). Ít nhất, sau khi có được giải pháp ở bước 3, bạn có thể chọn tất cả các cực không có trên mạng đó và xem xét cách xử lý chúng (có thể bằng cách tạo thủ công các kết nối cho chúng hoặc có thể bằng giải pháp cây bao trùm tối thiểu Euclide).

  2. Nếu một số đoạn đường hình thành các vòng lặp, bạn nên bỏ qua bước 2, nếu không các phần của các vòng lặp đó có thể bị mất.

  3. Các đường chính có thể không thực sự tạo thành một mạng được kết nối. Có thể có những khoảng trống nhỏ giữa các đoạn đường (đôi khi chỉ có kích thước milimet) phân tách một mạng có vẻ như được kết nối trực quan. Đây là một vấn đề về chất lượng dữ liệu sẽ gây khó khăn cho bất kỳ giải pháp nào, ngoại trừ một số giải pháp dựa trên raster.


Tại một thời điểm tôi đã đề cập đến FlowAccumulation trong việc vượt qua. Điều này có thể làm mọi người ngạc nhiên: vấn đề này có liên quan gì đến các dòng suối và lưu vực sông? Nhìn chằm chằm vào hình ảnh một lúc. Hãy tưởng tượng điểm gốc là điểm thấp trên một phong cảnh và những con đường có cột điện thoại là dấu vết của dòng chảy chảy về điểm thấp đó. Nếu chúng ta có thể tạo ra một bề mặt mà những con đường thực sự các dòng suối, sau đó chúng ta có thể để một "cơn mưa" nhỏ rơi ở vị trí của mỗi cực và dòng chảy xuống dốc. Các điểm bị ướt là giải pháp chúng tôi tìm kiếm: chúng kết nối các cực hiệu quả vào một mạng theo các con đường. Một tính toán CostDistance thích hợp - với trở kháng khác không thấp dọc theo các con đường và trở kháng cực kỳ cao nhưng không vô hạn trên đường - sẽ tạo ra chính xác loại bề mặt đó. Một cách khác để tạo bề mặt đó là từ lưới khoảng cách Euclide cho các con đường. Đó là hoàn hảo, ngoại trừ những con đường là đẳng cấp. Họ phải bị nghiêng; để làm điều này, hãy thêm bội số cực nhỏ của các khoảng cách dọc theo đường vào lưới khoảng cách Euclide. (Khoảng cách đường vẫn yêu cầu tính toán CostDistance, rất tốn kém, nhưng lần này chỉ cần thực hiện cho các ô đường, chứ không phải là tất cả các ô lưới, sẽ tăng tốc theo đơn đặt hàng cường độ. Điều đó cho phép chúng tôi sử dụng lưới có độ phân giải cực cao nếu muốn, do đó tránh được các lỗi phân tách có thể xảy ra với lưới thô.)


7

Về cơ bản theo cách tiếp cận của whuber, tôi sẽ thử điều này:

  1. Tách đường tại điểm bắt đầu (màu vàng).
  2. Thêm ba trường vào các đường: FROMDIST, TODIST và PARENTROAD_ID. FROMDIST sẽ lưu trữ khoảng cách từ điểm bắt đầu cho nút từ nút của đa tuyến, tương tự như vậy đối với TODIST. PARENTROAD_ID sẽ lưu trữ ROAD_ID của con đường gần điểm xuất phát hơn.
  3. Xây dựng một Cây kéo dài tối thiểu bao gồm các phần đường, sau đó tính toán các giá trị FROMDIST, TODIST và PARENTROAD_ID tương ứng.
  4. Thêm ba trường vào điểm featureclass: ROAD_ID, DISTANCE và PARENTPOINT_ID.
  5. Đối với mỗi điểm, hãy tìm tính năng đường gần nhất, sau đó nội suy giá trị DISTANCE dựa trên TỪ DỪNG và TODIST của đa tuyến cùng với khoảng cách dọc theo đa tuyến được tính qua ICurve.QueryPointandDistance .
  6. Đối với mỗi điểm, hãy tính PARENTPOINT_ID, đại diện cho ID của điểm tiếp theo gần hơn với điểm bắt đầu.
  7. Đối với mỗi điểm, tạo một đường thẳng giữa chính nó và điểm được tham chiếu bởi PARENTPOINT_ID. Viết polyline này vào một featureclass đầu ra.

3

Nghe có vẻ như bạn thực sự đang tìm kiếm một Mạng hình học trong cơ sở dữ liệu địa lý.

Điều gì sẽ xảy ra nếu bạn tạo một mạng hình học trong đó các đường của bạn sẽ đóng vai trò là "các đường trung kế" và sau đó chỉ cần thêm "các đường trung chuyển" chạy vuông góc từ các đường của bạn đến các điểm của bạn. Sau đó, bạn sẽ có thể " đặt và xem hướng luồng, thay đổi cài đặt phân tích, thêm cờ và rào cản để phân tích và thực hiện các tác vụ theo dõi khác nhau. " (Xem phần "Thanh công cụ phân tích mạng tiện ích"). Đồng thời xem " Giới thiệu về truy tìm trên các mạng hình học " để biết thêm chi tiết về các loại phân tích khác mà bạn có thể thực hiện với mạng hình học.

Điều này sẽ yêu cầu một chút thiết lập, nhưng bằng cách tạo ra một quy trình tự động kết nối các điểm với mạng, nó sẽ khá nhanh chóng và dễ dàng cập nhật khi các điểm mới được thêm vào mạng.

LƯU Ý : " Mặc dù các mạng hình học có thể được tạo và chỉnh sửa trong ArcInfo và ArcEditor, nhưng chúng chỉ đọc trong ArcView ". ( Từ "Xây dựng mạng hình học từ các lớp đối tượng đơn giản hiện có" )


1

Là một khởi đầu (không phải là giải pháp hoàn chỉnh).
Chúng tôi có thể cần biết định dạng dữ liệu, phiên bản và cấp giấy phép của arcgis của bạn.

Những gì tôi thấy là sử dụng mạng lưới đường như một hệ thống tham chiếu tuyến tính , sau đó "đánh số lại" các cực theo đúng trình tự .
Sau đó, bạn sẽ có thể sử dụng một trong một số công cụ (tôi chắc chắn câu trả lời của người khác sẽ xác định rõ hơn) để tạo ra các đường dẫn từ các cực.
Dưới đây là hướng dẫn arcgis 10 để tham khảo tuyến tính


Định dạng dữ liệu - shapefiles? có arcinfo 10. Cũng có nhà phân tích mạng, nhưng chỉ trên arc9.3 (phiên bản dùng thử). Thú vị tôi sẽ đọc về tham chiếu tuyến tính.
Thad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.