আর-তে কীভাবে মানচিত্র স্তর (shp এবং csv) ওভারলে করবেন?


9

এটি স্ট্যাকওভারফ্লো থেকে ক্রসপোস্ট । আমি জিআইএস সফ্টওয়্যার সম্পর্কে খুব কম জানি এবং আমার খুব ম্যাপিংটি আর.এস.-এর কাছে আগেই করাচ্ছি ক্ষমা প্রার্থনা যদি এটি খুব প্রাথমিক প্রশ্ন হয়। ধরা যাক আমার কাছে বিভিন্ন উত্স থেকে দুটি বৈশিষ্ট্য রয়েছে তবে বিভিন্ন গুণাবলীর সাথে। বলুন, একটি টেক্সাসের প্রশাসনিক সীমানার জন্য boundaries.shpএবং অন্যটি টেক্সাস নদীর ( rivers.shp) জন্য ) আমার কাছে তৃতীয় ফাইল towns.csvরয়েছে যা রাজ্যের মধ্যে শহরগুলির অবস্থানগুলি দেখায়। ফাইলগুলি পড়ার পরে, আমি maptoolsপ্যাকেজের প্রশাসনিক সীমানায় শহরের অবস্থানগুলি ওভারপ্লট করতে পারি :

plot(boundaries); points(towns$lon, towns$lat)

তবে আমি তিনটি কীভাবে ওভারলে করব? অবশ্যই এটি করার একটি সহজ উপায় আছে?

উত্তর:


8

পিবিএসম্যাপিং আপনার প্রয়োজন অনুসারে ফিট করে। এনসিইএএস- এ একটি টিউটোরিয়াল রয়েছে । নীচের কোডটি সেই টিউটোরিয়াল থেকে অভিযোজিত। আমি আপনার তথ্য বিটিডব্লিউ সম্পর্কে অনুমান করছি। আপনার পরিস্থিতির জন্য উপযুক্ত হিসাবে সম্পাদনা করুন।

library(PBSmapping)

#prepare towns
pts <- read.csv("towns.csv")
towns <- points(towns$lon, towns$lat)
# read in shapefiles 
rivers <- importShapefile("rivers.shp")
boundaries <- importShapefile("boundaries.shp")


# note that importShapefile reads the .prj file if it exists, but it
# does not adopt the proj4 format used by the above approaches
proj.abbr <- attr(boundaries, "projection") # abbreviated projection info
proj.full <- attr(boundaries, "prj") # full projection info
print(proj.abbr)
# [1] "LL"

# generate map using PBSmapping plotting functions
plotPolys(boundaries, projection=proj.abbr, border="gray",
    xlab="Longitude", ylab="Latitude")
addPoints(towns, pch=20, cex=0.8)
addLines(rivers, col="blue", lwd=2.0)

ধন্যবাদ, আরকে আমি এখনও এটির হ্যাং পেতে চেষ্টা করছি, তবে এটি ছিল একটি দুর্দান্ত পয়েন্টার।
user3671

আপনাকে স্বাগতম. ম্যাপিং মজা করুন :)
আর কে

11

দুটি প্লটের ওভারলে করার সহজ উপায়টি add = TRUEবিকল্পটি ব্যবহার করতে পারে plot। কৃত্রিম ডেটা সহ এখানে একটি উদাহরণ

# Load sp package for creating artificial data
library(sp)

# Create sample town points
towns <- data.frame(lon = sample(100), lat = sample(100))
towns <- SpatialPoints(towns)

# Create sample polygon grid
grd <- GridTopology(c(1,1), c(10,10), c(10,10))
polys <- as.SpatialPolygons.GridTopology(grd)

# Plot polygons
plot(polys)

# Add towns (in red colour)
plot(towns, add = TRUE, col = 'red')

চিপ ইন, ইয়েলক্যাপের জন্য ধন্যবাদ। তবে এটি বলে যে "অ্যাড কোনও গ্রাফিকাল প্যারামিটার নয়।"
user3671

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