আর এসএফ অবজেক্টটিকে স্পেসিয়ালপলিজোনস ডেটা ফ্রেমে রূপান্তর করুন


27

আমি কীভাবে কোনও এসএফ অবজেক্টটিকে স্পেসিয়ালপলিজোনস ডেটা ফ্রেমে রূপান্তর করব?

আমি আর 3.4.0 এবং এসএফ সংস্করণ 0.4.1 চালাচ্ছি। SF ডকুমেন্টেশন একটি উল্লেখ as_Spatialফাংশন, কিন্তু এটা আমার (কিছু কারণে) ইনস্টল উপলব্ধ নেই।


এসএফ 0.4-1-এ কোয়ার্সন পদ্ধতিটি উপলভ্য, আপনি যখন ফাংশনটি কল করার চেষ্টা করবেন তখন কী ঘটে?
জেফ্রি ইভানস

2
হিসাবে (এসএফ, "স্থানিক")
এমডসুমনার

@ জেফ্রি ইভানস, নীচে কাজুহিতোর উত্তর সমস্যার প্রতিলিপি দিয়েছে (এবং একটি আংশিক সমাধান দেয়)
সাইমন

উত্তর:


38

আমি ব্যবহার করতাম

 as(nc, 'Spatial')

এডজার পেবেসমা কর্তৃক প্রাপ্ত চিত্রের অংশ 2 হিসাবে (পৃষ্ঠার নীচে স্ক্রোল করুন)।


এটা দেখেছি তবে আমি সম্প্রতি এটি আবিষ্কার করেছি এবং আমি এই প্রশ্নটি দেখার পরে এটি একটি যথাযথ উত্তরে রাখার তাগিদ অনুভব করেছি;)

এবং এটি গুরুত্বপূর্ণ যে গ্রহণযোগ্য উত্তর ভবিষ্যতের পাঠকদের দ্বারা উপেক্ষা করা হবে না।
কাজুহিতো

1
: এই সত্যিই একটি SPDF মত কাজ করার জন্য, আমি ভালো কিছু করতে প্রয়োজন tmp <-as(nc, 'Spatial'), তারপর tmpid <- sapply(slot(tmp, "polygons"), function(x) slot(x, "ID"))তারপরrow.names(tmp) <- tmpid
সাইমন

1
'সত্যই এসপিডিএফের মতো কাজ করা' এর অর্থ কী? আমি রূপান্তর দ্বারা তৈরি কোনও অসুবিধা দেখতে পাচ্ছি না।
andschar

8

আমি sf:::as_Spatial()workaround হিসাবে ব্যবহার করতে হয়েছিল।

library(sf)
nc <- st_read(system.file("shape/nc.shp", package="sf"))

# sf -> sp
nc_sp <- as_Spatial(nc$geom)      # Error: could not find function "as_Spatial"

nc_sp <- sf:::as_Spatial(nc$geom) # This works

library(sp)
plot(nc_sp)

ডাটাফ্রেম অক্ষত রাখার কোনও উপায় আছে কি?
সাইমন

চলমান as(sf, "Spatial")@mdsumner দ্বারা, আমি নিশ্চিত এটা SpatialPolygonsDataFrame, যা আপনার প্রয়োজন জন্য ভাল উৎপন্ন হয়। মনে as_Spatial()হয় কেবল এসএফসি লাগে (অর্থাত্ জ্যামিতি)।
কাজুহিতো

1
এই ফাংশনটি একটি পদ্ধতি এবং () হিসাবে ব্যবহার করে কল করা ঠিক নয়। এটি কোনও ফাংশন অবজেক্ট হিসাবে রফতানি করা হয় না এজন্য এটিকে সরাসরি কল করতে আপনার ":::" প্রয়োজন।
জেফ্রি ইভানস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.