আর-তে ওএসএম ফাইলকে শেফফাইলে (বা ডেটা ফ্রেম) রূপান্তর করা


15

আমি আজ অস্ট্রেলিয়ার জন্য একটি রোড ফিফিল খুঁজছিলাম। জিওফ্যাব্রিকে গিয়ে শেষ করলাম । ওপেন স্ট্রিট ম্যাপের .osmফর্ম্যাটে ডেটা রয়েছে । তবে .shpঅস্ট্রেলিয়ার হয়ে তাদের একটিও নেই ।

যদি সম্ভব হয় তবে আমি osmফাইলগুলিকে shapefilesআর ব্যবহার করে রূপান্তর করতে চাই around আমি প্রায় অনুসন্ধান করেছি, কিন্তু আমি এখনও এর সমাধান পাইনি। এর কোন উপায় আছে কি? বিকল্পভাবে, ওএসএম ফাইলগুলি আর-তে রূপান্তর করা এবং ডেটাটি ডেটা ফ্রেমে রূপান্তর করা সম্ভব হয় যাতে আমি ব্যবহার করে চিত্রগুলি আঁকতে পারি ggplot2?

আমি এনজেডের নীচের গ্রাফিকটি maptoolsএবং এর সাথে দুটি আকারের ফাইল ব্যবহার করে অর্জন করেছি ggplot2। আদর্শভাবে, আমি অস্ট্রেলিয়ার অনুরূপ মানচিত্র তৈরি করতে চাই।

এখানে চিত্র বর্ণনা লিখুন


আপনি রাস্তার ফাইলগুলির সাথে কী করতে চান - এগুলি কেবল কোনও মানচিত্রে প্রদর্শন করুন বা কোনও ধরণের বিশ্লেষণ করুন? শেফিলগুলির কিছু সীমাবদ্ধতা রয়েছে; আপনি অন্য ফর্ম্যাট ব্যবহার করে ভাল হতে পারে!
সিম্বামাঙ্গু

@ সিম্বামাঙ্গু আমি প্রথমে একটি মানচিত্রে রাস্তা প্রদর্শন করতে চাই। শেফফাইল না হলে আর এর সাথে কোন ফর্ম্যাটটি ব্যবহার করার পরামর্শ দিচ্ছেন?
জাজুরুর

উত্তর:


10

এটি কোনও আর সমাধান নয়, তবে আপনি যা চান তা অর্জনের জন্য কোয়ান্টাম জিআইএস (কিউজিআইএস) একটি দুর্দান্ত উপায়।

আপনি কেবলমাত্র .osm ফাইলটি (ভেক্টর সরঞ্জাম যুক্ত করুন) লোড করতে পারেন, সূচীপত্রের এটিকে ডান ক্লিক করুন এবং ESRI শেফিল হিসাবে সংরক্ষণ করুন।

কিউজিআইএস এত বড় এক্সট্র্যাক্ট দিয়ে ক্র্যাশ করতে পারে, তাই এড়াতে আপনি ওভারপাস এপিআইয়ের মতো ওএসএম সরঞ্জামগুলি কেবল বাউন্ডিং বাক্স ব্যবহার করে যা প্রয়োজন তা ডাউনলোড করতে পারেন।

ওভারপাস-টার্বো Api, এছাড়াও নির্যাস প্রাপ্ত প্রাপ্তিসাধ্য থাকে তাহলে, সেটিতে একটি সংক্ষিপ্ত টিউটোরিয়াল এখানে!

আমি হাইওয়ে = প্রাথমিক এবং হাইওয়ে = প্রাথমিক_ লিঙ্ক ট্যাগ (ওএসএম হাইওয়ে ট্যাগিং স্কিমটি এখানে দেখতে পেলাম ! ) উপর ভিত্তি করে ওভারপাস-টার্বোতে উইজার্ড ব্যবহার করে একটি দ্রুত উদাহরণ দৌড়েছিলাম এবং নীচের চিত্রটি ভিক্টোরিয়ার ফলাফল ছিল।

আমি তখন জিওজেএসন হিসাবে ডেটা রফতানি করেছিলাম, কিউজিআইএস-এ এটি লোড করে ফলাফলটি আকারের আকারে সংরক্ষণ করেছি। (দ্বিতীয় চিত্রটি কিউজিআইএসে লোড হওয়া লাইনগুলি এবং পোলিকে দেখায়)

অন্যান্য বিকল্প GeoFabrik থেকে এলাকার জন্য PBF বা OSM ফাইল ডাউনলোড করুন হাইওয়ে = * ব্যবহার ট্যাগ আহরণের দ্বারা ডেটা উপসেট হয় আস্রবণ । আপনি যদি নিয়মিতভাবে ইয়োর ডেটা আপডেট করতে চান তবে ওস্মোসিস হ'ল এগিয়ে যাওয়ার প্রস্তাব দেওয়া উপায়। যদি এটি অফ অফ এক্সট্রাক্ট হয় তবে মেমরির সীমাবদ্ধতার কারণে আপনাকে ছোট বাউন্ডিং বাক্সে এটি করতে হলেও, ওভারপাস সম্ভবত সহজ হবে। আপনি কেবল একই ওভারপাস ক্যোয়ারীগুলিতে বিভিন্ন বাউন্ডিং বাক্সগুলি প্রয়োগ করবেন।

হাইওয়ে = প্রাথমিক ওভারপাস-টার্বো ফলাফল

জিওজেসন QGIS এ লোড করা হয়েছে Exp


2
নাট যতটা সহজ আপনি ভাবেন: অস্ট্রেলিয়া.ওসএম.পিবিএফ ১৯৫ এমবি বৃহত্তর (সংকুচিত), সুতরাং আমি ধরে নিয়েছি এটি সমস্ত ডেটা লোড করার জন্য কিউজিআইএস ক্র্যাশ করবে। আমি ডেটা দিয়ে কিউজিআইএস খাওয়ার আগে কাঙ্ক্ষিত রাস্তার তথ্যকে অসমফিল্টার বা অসমোসিস দিয়ে ফিল্টার করার পরামর্শ দিই ।
আন্দ্রেজে

@ আন্ড্রে, বৈধ পয়েন্ট, উত্তরটি যথাযথভাবে আপডেট করবে!
মার্ক কাপিট

1
আমার কাজটি পরিচালনা করার জন্য আমাকে অন্য উপায়টি জানাতে অনেক ধন্যবাদ। আমি আপনার কাছ থেকে নতুন কিছু শিখেছি। চিয়ার্স।
জাজুরোর

10

@ জাজুরুরো, আপনি পুরোপুরি আর এর মাধ্যমে এটি করতে পারেন, কেবল ওসমার প্যাকেজটি সন্ধান করুন! ওসমার ডকুমেন্টেশন (osmar.r-forge.r-project.org/RJpreprint.pdf) পড়ুন। পৃষ্ঠাগুলি ১১ পৃষ্ঠায় আপনি মুনিচ.সোম এর জন্য ট্যাগ অনুসারে রাস্তা / মহাসড়ক উত্তোলনের জন্য একটি বিস্তারিত উদাহরণ পেতে পারেন! অস্ট্রেলিয়ার জন্য কোনও গ্রহ ফাইল থেকে ডেটা টানতে এবং বের করার পরে আপনি আপনার যে কোনও বিন্যাসে রূপান্তর করতে পারেন!

সম্পাদনা:

যেহেতু কিছু ভাষ্যকার উদাহরণের অভাবে অভিযোগ করছিলেন আমি ডক্স থেকে একটি উদাহরণ পোস্ট করব। আইএমএইচও এখানে বিদ্যমান উদাহরণগুলি আবার টাইপ করা প্রয়োজন হবে না, তাই না?

library(maptools)
library(osmar)
url <- "http://osmar.r-forge.r-project.org/"
file <- "muenchen.osm.gz"
download.file(sprintf("%s%s", url, file), file)
unzip("gzip -d muenchen.osm.gz") # gzip is linux only, on windows I unzipped this manually with 7zip!

src <- osmsource_osmosis(file = "muenchen.osm")
muc_bbox <- center_bbox(11.575278, 48.137222, 3000, 3000)
muc <- get_osm(muc_bbox, src)
muc
summary(muc)

hw_ids <- find(muc, way(tags(k == "highway")))
hw_ids <- find_down(muc, way(hw_ids))
hw <- subset(muc, ids = hw_ids)

plot(muc)
plot_ways(hw, add = TRUE, col = "green")

# convert to spatial object (SpatialLinesDataFrame)
# and save to whatever format you like..
hw_line <- as_sp(hw, "lines")

এখানে চিত্র বর্ণনা লিখুন


লিঙ্ক জন্য আপনাকে অনেক ধন্যবাদ। আমি প্যাকেজ সম্পর্কিত একটি বা দুটি পোস্ট দেখেছি। তবে আমি নিশ্চিত ছিলাম না যে প্যাকেজটি .osmফাইলগুলিকে ডেটা ফ্রেমে রূপান্তর করতে পারে। তাত্ক্ষণিকভাবে নজর রাখা, দেখে মনে হচ্ছে .osmফাইলগুলি ডেটা ফ্রেমে রূপান্তরিত করার সরাসরি কোনও উপায় নেই । নাকি আছে?
জাজুরুর

ওসমার ডকুমেন্টেশন পড়ুন ( osmar.r-forge.r-project.org/RJpreprint.pdf ) .. পৃষ্ঠাগুলি 11 পৃষ্ঠাতে আপনি নিম্নলিখিত ট্যাগের দ্বারা রাস্তা / মহাসড়ক উত্তোলনের জন্য একটি বিস্তারিত উদাহরণ পেতে পারেন munich.osm! অস্ট্রেলিয়ার জন্য কোনও গ্রহ ফাইল থেকে ডেটা টানতে এবং বের করার পরে আপনি আপনার যে কোনও বিন্যাসে রূপান্তর করতে পারেন! পিএস: ওএস থেকে অন্য লিঙ্কটি অপসারণ করেছে কারণ এটি ওএসএম-ফাইলগুলির সাথে ডিলিংয়ের বিষয়টি বিবেচনা করে না ..
কে

1
এটি প্রশ্নের উত্তর সরবরাহ করে না। কোনও লেখকের সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন leave
এসএস_বিদ্রোহী

@ এসএস_ বিদ্রোহী, এটি পরিষ্কারভাবে একটি উত্তর সরবরাহ করে। আপনি কী বলতে চাইছেন তা আমি জানি না।
কে

@ কে এই উত্তরটি আরও ভাল করতে, আপনি পছন্দসই ফলাফলগুলি পেতে কীভাবে ওসমার প্যাকেজ ব্যবহার করবেন তা ব্যাখ্যা করতে পারেন।
জাচারি 12

7

ঠিক আছে, এখানে সঠিক উত্তর এসেছে:

  • rgdal(সংস্করণ> = 1.0.4) ইনস্টল করা আছে তা নিশ্চিত করুন

    install.packages('rgdal')
    packageVersion('rgdal')
    
    [1]1.0.4
  • gdal(সংস্করণ> = 1.11.0) ইনস্টল করা আছে তা নিশ্চিত করুন

    library(rgdal)
    getGDALVersionInfo()
    
    [1] "GDAL 1.11.2, released 2015/02/10"
  • এটি gdalExpat / OSM এবং SQLite সমর্থন সহ সংকলিত রয়েছে তা নিশ্চিত করুন :

    c('SQLite', 'OSM') %in% ogrDrivers()$name
    
    [1] TRUE TRUE
  • শেফফাইল হিসাবে আপনি কোন স্তরটি সংরক্ষণ করতে চান তা নিশ্চিত হয়ে নিন:

    ogrListLayers('filename.osm.pbf')
    
    [1] "points" "lines" "multilinestrings" "multipolygons"
    attr(,"driver")
    [1] "OSM"
    attr(,"nlayers")
    [1] 4
  • আমরা যেতে প্রস্তুত:

    osm <- readOGR('filename.osm.pbf', 'lines')
    writeOGR(osm, 'myshapedir', 'mylayer', driver = 'ESRI Shapefile')

ফাইলটি একবার পড়ার পরে কীভাবে এটি প্লট করা যায় তা শিখতে এই নির্দেশিকাগুলিreadOGR অনুসরণ করুন ।ggplot2

নোট করুন যে আপনি .osmফাইলগুলি এক্সএমএল ফর্ম্যাটেও পড়তে পারেন , কেবল এটি নিশ্চিত করুন যে সেগুলি সংকুচিত হয়নি (যেমন এক্সটেনশনটি .osmনয় .osm.bz2) তবে তারা খুব ছোট হওয়ায় .osm.pbf ফাইলটি ব্যবহার করার চেষ্টা করুন।


fyi, rgdalউইন্ডোজের সর্বশেষতম সংকলনটি 0.9-3 হয় এবং এর FALSE FALSEজন্য ফিরে আসেc('SQLite', 'OSM') %in% ogrDrivers()$name
আরিয়ানো

আপনি rgdalসোর্স প্যাকেজটি চেষ্টা করতে পারেন ( cran.r-project.org/src/contrib/rgdal_1.0-4.tar.gz ) বা ওল্ডারেল বাইনারি ( cran.r-project.org/bin/windows/contrib/3.1/ rgdal_1.0-4.zip )। GDALউইন্ডোজ বাইনারি সম্পর্কে , আমি জানি না, আপনি GDALপ্রজেক্টে একটি বাগ রিপোর্ট ফাইল করতে পারেন এবং অনুরোধ করতে পারেন যে উইন্ডোজ GDALবাইনারিগুলিতে এক্সপ্যাট এবং এসকিউএলাইট সমর্থন সক্ষম করতে হবে ।
gkcn

অথবা আপনি এটি উইন্ডোজে মিনিজিডাব্লু
gkcn

1

osm2shp.ru এখানে আপনি শেপফাইলে ফর্ম্যাটে ওপেনস্ট্রিটম্যাপ ডেটা ডাউনলোড করতে পারেন। অঞ্চলগুলিতে বিভক্ত ডেটা: উত্তর এবং দক্ষিণ আমেরিকা, অস্ট্রেলিয়া এবং ওশেনিয়া, আফ্রিকা, ইউরোপা এবং এশিয়া .1১ স্তরগুলি ডাউনলোডের জন্য। "মানচিত্রের বৈশিষ্ট্যগুলি" শর্তাবলী দ্বারা ডেটা ফিল্টার করা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.