Helpex - Trao đổi & giúp đỡ Đăng nhập
5

Tôi đang tìm cách chuyển đổi theo chương trình nhật ký GPS của mình thành hình ảnh và muốn thực hiện việc này trong Ruby ... nếu đó là một công cụ có thể chấp nhận được. Tôi không có kiến ​​thức nền tảng về GIS nhưng với tư cách là một lập trình viên, tôi nghĩ rằng đó là một vấn đề thú vị để xem xét.

Đây là những gì tôi đã nghĩ ra cho đến nay. Đầu tiên, bạn sẽ cần một số loại thư viện vẽ đồ thị. Tôi đã tìm kiếm gnuplot khi tôi tìm thấy một liên kết Ruby cho cái đó nhưng R có vẻ nóng trong những ngày này. Tôi đã tạo một tập lệnh nhỏ để chuyển đổi tệp GPX và cấp dữ liệu vào gnuplot, dẫn đến kết quả như sau: alt text http://dl.dropbox.com/u/45672/gpslog.png

Điều này trông ổn nhưng gnuplot có vẻ thực sự là một công cụ để tạo đồ thị chứ không phải dữ liệu không gian. Đây có phải là cách để làm điều đó hay có nhiều giải pháp tốt hơn hiện có?

Đây là một ví dụ khác , bất kỳ ý tưởng nào về cách bạn xây dựng những thứ như thế này?

5 hữu ích 2 bình luận 3.6k xem chia sẻ
4

Câu trả lời cho câu hỏi đầu tiên

Vì bạn đã nói rằng bạn "muốn làm điều này bằng Ruby ... nếu đó là một công cụ có thể chấp nhận được ", tôi sẽ đi ra ngoài và giả định rằng bạn có thể sẵn sàng cho một giải pháp không phải Ruby nếu nó đáp ứng tất cả các những yêu cầu khác.

Tôi muốn giới thiệu Python chủ yếu vì trong chương đầu tiên của Hình ảnh hóa Python cho Người mới bắt đầu , Shai Vaingast - tác giả - xem qua một ví dụ về việc đọc dữ liệu GPS từ bộ thu GPS và sau đó vẽ biểu đồ kết quả. Nếu bạn đang tìm kiếm một giải pháp dựa trên Python, cuốn sách này sẽ là một nguồn tài nguyên tuyệt vời.

Dưới đây là các gói Python được sử dụng để đọc và vẽ biểu đồ dữ liệu GPS:

  • pySerial để đọc dữ liệu GPS từ cổng nối tiếp
  • matplotlib để vẽ dữ liệu. " matplotlib là một thư viện để tạo các mảng 2D bằng Python. Mặc dù nó có nguồn gốc từ việc mô phỏng các lệnh đồ họa MATLAB®, nhưng nó độc lập với MATLAB và có thể được sử dụng theo cách Pythonic, hướng đối tượng."

Dưới đây là một hình ví dụ do Shai Vaingast tạo ra cho thấy một số khả năng khác nhau của matplotlib để vẽ dữ liệu GPS.

Lập sơ đồ thông tin GPS với Ruby

Nếu bạn không thích giải pháp Python và muốn sử dụng Ruby — vì bất kỳ lý do gì — tôi hiểu. Tôi đã cố gắng tìm kiếm một gói tương đương với matplotlib trong Ruby, nhưng tôi không tìm thấy một gói tương đương.

Câu trả lời cho câu hỏi cuối cùng

Đây là một ví dụ khác , bất kỳ ý tưởng nào về cách bạn xây dựng những thứ như thế này?

Nhìn vào góc dưới bên phải, có vẻ như DISLIN đã được sử dụng để tạo hình ảnh đó. Mặc dù DISLIN có sẵn cho khá nhiều ngôn ngữ lập trình, trang yêu cầu phần mềm DISLIN không hiển thị rằng Ruby được hỗ trợ.

Lập sơ đồ thông tin GPS với Ruby

Theo trang web DISLIN ,

DISLIN là thư viện biểu đồ cấp cao để hiển thị dữ liệu dưới dạng đường cong, biểu đồ cực, biểu đồ thanh, biểu đồ hình tròn, biểu đồ màu 3D, bề mặt, đường viền và bản đồ.

Phần mềm có sẵn cho một số trình biên dịch C, Fortran 77 và Fortran 90/95 trên hệ điều hành UNIX, Linux, FreeBSD, OpenVMS, Windows, Mac OSX và MS-DOS. Các chương trình DISLIN rất độc lập với hệ thống, chúng có thể được chuyển từ hệ điều hành này sang hệ điều hành khác mà không có bất kỳ thay đổi nào.

Đối với một số hệ điều hành, ngôn ngữ lập trình Perl, Python, Java và trình thông dịch C / C ++ Ch cũng được hỗ trợ bởi DISLIN. Trình thông dịch DISLIN DISGCL khả dụng cho tất cả các hệ điều hành được hỗ trợ. Xem danh sách đầy đủ các hệ điều hành và trình biên dịch được hỗ trợ.

4 hữu ích 0 bình luận chia sẻ
1

Bạn thực sự muốn hình ảnh hay chỉ là một cách để trực quan hóa dữ liệu? Làm thế nào về việc sử dụng api bản đồ google?

Kiểm tra liên kết này:

http://google-dox.net/O.Reilly-Google.Maps.Hacks/0596101619/googlemapshks-CHP-4-SECT-10.html

1 hữu ích 1 bình luận chia sẻ
1

Tôi nghĩ rằng việc sử dụng gnuplot từ bất kỳ ngôn ngữ lập trình nào là một cách tiếp cận khởi đầu tốt.

Tuy nhiên, tôi thực sự khuyên bạn nên thêm set size ratio -1lệnh gnuplot vào đâu đó trong mã của bạn, vì điều này sẽ làm cho tỷ lệ trục x và y bằng nhau trong biểu đồ, điều này cực kỳ quan trọng.

Bạn cũng có thể tăng cường dòng bằng các điểm đánh dấu rất nhỏ cách đều nhau về thời gian (giả sử bạn có thông tin thời gian trong dữ liệu của mình hoặc ít nhất bạn biết rằng các hàng được lấy mẫu theo khoảng thời gian đều đặn), vì vậy bạn sẽ cảm nhận được tốc độ của chuyển động, nếu không sẽ bị mất (nghĩa là các điểm đánh dấu khoảng cách lớn trên đường có nghĩa là chuyển động nhanh hơn). Rõ ràng là bạn nên chọn khoảng thời gian giữa các điểm đánh dấu làm cho chúng có khoảng cách thích hợp hoặc tự động tính toán khoảng thời gian đó: tức là bằng cách tính toán độ dài của đường cong của bạn, chuyển đổi nó theo đơn vị pixel và chia cho bất kỳ thứ gì từ 10 đến 100, để có được tổng số điểm bạn muốn đặt. Khoảng thời gian sau đó được cho bằng tổng thời gian của đường đua chia cho số điểm đó. Điều này sẽ hoạt động mạnh mẽ cho các chuyển động hợp lý thường xuyên.

Một lựa chọn khác là sử dụng một hệ thống biểu đồ khác với gnuplot, hệ thống này mạnh mẽ nhưng hơi cũ. Các tùy chọn mà tôi biết bao gồm:

  • cộc cằn , dành cho ruby ​​nhưng dường như bỏ lỡ khả năng vẽ cốt truyện 2D (đó là một yêu cầu rõ ràng).
  • Biểu đồ XML / SWF , mạnh mẽ và linh hoạt, nhưng mang tính thương mại. Trong trường hợp này, bạn sẽ sử dụng ruby ​​hoặc bất kỳ ngôn ngữ lập trình nào khác để tạo tệp XML, tệp này sau đó được diễn giải thành biểu đồ tương tác.
  • API biểu đồ của Google , có thể trả lại hình ảnh biểu đồ qua web, giả mạo yêu cầu GET hoặc POST thích hợp trong mã của bạn. Trong trường hợp này, bạn đang giao nhau trong lxyloại biểu đồ, có thể được kết hợp với biểu đồ phân tán cho các điểm đánh dấu.

Lựa chọn thứ ba có vẻ thú vị nhất.

1 hữu ích 2 bình luận chia sẻ
1

GDAL là bộ GIS mã nguồn mở rất phổ biến, có các ràng buộc GDAL Ruby . Nếu bạn muốn dữ liệu bản đồ, bản đồ đường phố mở là rất hữu ích. Kết hợp giữa OSM và GPS sẽ cho kết quả khá tốt. Hướng dẫn GDAL / OGR Api ở đây.

1 hữu ích 0 bình luận chia sẻ
0

Nếu bạn muốn tìm hiểu thêm về R, cũng có những ràng buộc Ruby cho điều đó, nhưng không có hoạt động nào trong dự án trong hơn một năm qua:

http://github.com/alexgutteridge/rsruby

0 hữu ích 1 bình luận chia sẻ
0

Có thể bạn đã nghe nói về Xử lý nhưng bạn đã nghe nói về Xử lý Ruby chưa?

Từ readme xử lý Ruby :

Ruby-Processing là một trình bao bọc Ruby cho khung nghệ thuật mã Xử lý.

Nếu một số thời gian chất lượng với Ruby là ý tưởng của bạn về một buổi chiều vui vẻ, hoặc bạn nuôi
tham vọng bước vào thế giới Code Art có nhịp độ nhanh và không hoàn toàn nhàm chán, thì Ruby-Processing có lẽ là thứ bạn nên thử.

Xử lý là một khuôn khổ do MIT phát triển để tạo ra các tạo tác mã, hoạt ảnh, hình ảnh trực quan và những thứ tương tự, được phát triển ban đầu bởi Ben Fry và Casey Reas, được hỗ trợ bởi một đội ngũ nhỏ những người đóng góp mã nguồn mở.
Xử lý đã trở thành một loại tiêu chuẩn cho lập trình theo hướng trực quan, ảnh hưởng mạnh mẽ đến các thiết kế của Nodebox, Shoes, Arduino và các dự án tử tế khác

0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ruby gps plot spatial gpx , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading