আর-তে শেফফাইল পড়ার জন্য প্রজ 4 স্ট্রিংয়ের সঠিক মান নির্বাচন করছেন?


14

আমার বহুভুজ এবং অন্য একটি সিএসভি ফাইলের শেফফাইল রয়েছে যাতে পয়েন্টগুলির একটি তালিকা রয়েছে (ল্যাট, এলএনজি) জোড়া হিসাবে ..

আমি CSV ফাইল থেকে প্রতিটি (ল্যাট, এলএনজি) জোড় যাচাই করতে চাই যা বহুভুজ এটি ভিতরে পড়েছে ..

শেফফাইলটি প্রজেক্ট করা হয় এবং প্রজ ফাইলটি এরকম পড়ে:

PROJCS["Transverse_Mercator",GEOGCS["GCS_OSGB 1936",
DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],UNIT["Meter",1]]

আমার পরিকল্পনাটি নিম্নরূপ:

  1. readShapePolyআর MapToolsপ্যাকেজে ফাংশনটি ব্যবহার করে শেফফাইলটি পড়ুন ।
  2. সিএসভি ফাইল থেকে পয়েন্টের সমন্বয়গুলি একটি ডেটাফ্রেমে পড়ুন এবং এটিকে স্থানিক পয়েন্টস ডেটা ফ্রেমে রূপান্তর করুন
  3. overএটি কোন বহুভুজের ভিতরে পড়ে তা নির্ধারণ করতে ফাংশনটি ব্যবহার করুন ।

এটি করার জন্য, আমাকে proj4stringপদক্ষেপ 1 এ শেডফাইলটি লোড করার সময় নির্দিষ্ট করতে হবে এবং পদক্ষেপ 3 spTransformoverফাংশন প্রয়োগ করার আগে সিএসভি ফাইল থেকে স্থানাঙ্কগুলি একই প্রক্ষেপণ সিস্টেমে রূপান্তর করতে হবে কারণ এটি প্রয়োজনীয় যে পয়েন্ট এবং বহুভুজ অবশ্যই একই প্রক্ষেপণ সিস্টেমের অধীনে হতে।

উপরে প্রদর্শিত প্রজ ফাইল সামগ্রীর জন্য সঠিক মানটি সম্পর্কে কোন ধারণা?


যদি আপনার শেফফিল (গুলি) এর মধ্যে ইতিমধ্যে rgdal প্যাকেজটিতে প্রজেকশন সংজ্ঞায়িত "readOGR" ব্যবহার করা হয়। এই প্যাকেজটি জিডিএল-র একটি মোড়ক এবং মানচিত্রগুলিতে শেফফিল পড়ার / লেখার কার্যকারিতাটিকে সত্যই ছাড়িয়েছে। এই ফাংশনটি সমস্ত টপোলজির ধরণগুলি পরিচালনা করে এবং প্রক্ষেপণের তথ্য ধরে রাখে।
জেফ্রি ইভান্স

আমি যখন readOGRফাংশনটি ব্যবহার করে আকার ফাইলটি লোডইন করার চেষ্টা করি তখন আমি সর্বদা ফাইল ত্রুটিটি খুলতে পারি না
মৌস্তফা আলজানটট

ঠিক আছে, এখন আমি রিডওজিআর ব্যবহার করে ফাইলটি পড়তে সক্ষম হয়েছি .. অবজেক্টটির summaryজন্য ফাংশন ব্যবহার করে SpatialPolygonDataFrameআমাকে সঠিক মূল্য দিয়েছেproj4string
মওস্তফা আলজানটট

ঠিক আছে, আপনি কীভাবে এই ফাংশনটি ব্যবহার করছেন তা বিশদ ছাড়াই আপনাকে সহায়তা করা কঠিন! সিনট্যাক্সের অংশটি হ'ল ডিরেক্টরিটিতে ডেটা থাকে এবং আপনার ফাইলনামে .shp এক্সটেনশন প্রয়োজন হয় না। রিড ওজিআর (getwd (), "আপনার শাপ") এর মতো কিছুতে যদি আপনার শ্যাপফিলটি ঠিক একই জায়গায় আপনার কর্ম-ডিরেক্টরিতে সেট করা থাকে তবে তা কাজ করা উচিত।
জেফ্রি ইভান্স

ধন্যবাদ @ জেফ্রে ইভানস, এটি এখন কাজ করেছে এবং আমি প্রজ 4 স্ট্রিংটি
মৌস্তফা আলজানটট

উত্তর:


14

প্রোজ 4 স্ট্রিংটি একটি বৈধ PROJ4 সিআরএস স্ট্রিং।

দেখুন কীভাবে আমি একটি শেপফাইল .prj ফাইল থেকে প্রজ 4 স্ট্রিং বা ইপিএসজি কোড পেতে পারি? এবং পোস্টজিআইএস এসআরআইডি দেখার টেবিল থেকে শাইফিল পিআরজে?

সংক্ষেপে:

  • আপনি প্রথম রেফারেন্সের মতো জিডিএলিনফো বা দ্বিতীয় রেফারেন্সের মতো জিডিএল পাইথন বাইন্ডিং ব্যবহার করতে পারেন ।

অথবা

  • Prj2EPSG এ যান (প্রারম্ভিক ফাইল থেকে প্রমিত ফাইলগুলি স্ট্যান্ডার্ড ইপিএসজি কোডগুলিতে রূপান্তর করার জন্য একটি সহজ পরিষেবা)
  • আপনার prj ফাইলের বিষয়বস্তু লিখুন

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

  • ফলাফলটি EPSG: 27700 তাই PROJ4 স্ট্রিংয়ের প্রথম সংস্করণ is

    " + init = epsg: 27700 "

`বা

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

  • Proj4 এ ক্লিক করুন এবং সম্পূর্ণ PROJ4 স্ট্রিংটি হ'ল:

    " + প্রজেক্ট = টেমার্ক + ল্যাট_0 = 49 + দীর্ঘ + = -২ + কে = 0.9996012717 + x_0 = 400000 + y_0 = -100000 + উপবৃত্তাকার = এয়ারি + ড্যাটুম = ওএসজিবি 36 + ইউনিট = মি + ন_ডিফস "


10

প্রদত্ত অভিক্ষেপের জন্য ইপিএসজি কোডটি পুনরুদ্ধার করার জন্য এখানে একটি খুব কার্যকর ওয়েবসাইট । আপনার ক্ষেত্রে প্রক্ষেপণটি "EPSG: 27700"। আপনার যদি শেফফিলের জন্য সংজ্ঞা নির্ধারণ করা থাকে আপনি স্প্যাটিয়ালপয়েন্টস ডেটাফ্রেম তৈরি করার সময় আপনি প্রক্ষেপণ বরাদ্দ করতে পারেন এবং তারপরে আপনার আমদানি করা শেফফাইল থেকে প্রজেকশন সংজ্ঞাটি ব্যবহার করতে পারেন। আরজিডাল প্যাকেজ থেকে "রিডওজিআর" ব্যবহার করা প্রজেকশন সংজ্ঞাটি বজায় রাখবে। এখানে এসপি শ্রেণীর ডেটাতে স্থানাঙ্ক স্ট্রিনগুলি বরাদ্দকরণ এবং টানার একটি উদাহরণ।

require(sp)
require(rgdal)

# Use meuse dataset
data(meuse)

# Coerce into SpatialPointsDataframe
coordinates(meuse) <- ~x+y

# Assign projection
proj4string(meuse) <- CRS("+init=epsg:28992")

# Pull some observations and transform to Lat/Long
meuse.geo <- meuse[sample(dim(meuse)[1],10),]
  prj.LatLong <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")
    meuse.geo <- spTransform(meuse.geo, prj.LatLong)

# Pull projection string from meuse.geo and use in spTransform
#   to reproject meuse to lat/long  
( prj <- proj4string(meuse.geo) )   
meuse <- spTransform(meuse, CRS(prj))   
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.