কিউআইজিএস ব্যবহার করে নিয়ন্ত্রণ পয়েন্ট সহ জিওরফারেন্সিং ভেক্টর স্তরটি?


29

আমার একটি জিওরফারেন্সযুক্ত ভেক্টর স্তর রয়েছে যা আমার জিওরিফারেন্স করা দরকার। রাস্টার স্তরগুলির সাথে টাস্কটি সহজ এবং সোজা, তবে আমার ভেক্টর স্তরটি দিয়ে আমার কী করা উচিত তা আমার কোনও ধারণা নেই। আমার পরিচিত কয়েকটি স্থানাঙ্কের সাথে কয়েকটি নিয়ন্ত্রণ পয়েন্ট রয়েছে যা রূপান্তরের কিছু ভিত্তি সরবরাহ করবে। সুতরাং, আসুন আমি বলি যে আমি জানি 1, 2 এবং 3 এর আইডি-এস সহ পয়েন্টগুলির সাথে এক্স 1, ওয়াই 1 এর স্থানাঙ্ক থাকতে হবে; x2, y2; X3, y3। সাধারণ স্থানান্তরকরণের পাশাপাশি কিছু ঘোরানো এবং স্কেল রূপান্তর হতে পারে।

কোন ধারনা?


আপনি কি কিউজএফাইন প্লাগইনটি ব্যবহার করে দেখেছেন? অনুরূপ প্রশ্ন এখানে: gis.stackexchange.com/questions/22691/how-to-georeferences-a-dxf
রায়নার

এফাইন প্লাগ-ইন সম্ভবত রূপান্তরটি করবে, তবে এটি ব্যবহারের জন্য আপনাকে রূপান্তর পরামিতিগুলি জানতে হবে। আপনি কি আপনার তিনটি পয়েন্টের জন্য ভেক্টর স্থানাঙ্ক এবং সম্পর্কিত বাস্তব-জগতের স্থানাঙ্কগুলি পোস্ট করতে পারেন? এন।
নপটন

আপনি জিডাল_রেস্টেরাইজ ব্যবহার করে শেফফিলটিকে একটি টিফে রূপান্তর করতে পারবেন, টিফটিটি জিওরিফারেন্স করুন, তারপরে ওয়ার্ল্ড ফাইল থেকে প্যারামিটারগুলি বের করুন?
ক্লিভিস

উত্তর:


10

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

মেনুতে কিগস্যাফাইন কোথায় পাওয়া যাবে সেখানে আরও তথ্য রয়েছে ?


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

1
এ সম্পর্কে চিন্তাভাবনা করে, আপনি দেখতে পাবেন যে গ্রাস v.transfor (এটি Sextante টুলকিটটিতে রয়েছে) কিউগ্যাসফাইন প্লাগ-ইন-এর চেয়ে বন্ধুত্বপূর্ণ। এন।
নপটন

1
এটা চেহারা দ্বারা v.transform পাশাপাশি আপনার জন্য অঙ্কের কি করতে হবে দেখুন grass.osgeo.org/gdp/html_grass63/v.transform.html
nhopton

8

আপনার নিয়ন্ত্রণের কিছু পয়েন্ট রয়েছে এ বিষয়টি বিবেচনা করে আপনার ভেক্টরের ডেটা স্থানান্তর করতে আপনার একটি অ্যাফাইন রূপান্তর ব্যবহার করতে সক্ষম হওয়া উচিত। কটাক্ষপাত আছে এই রেসিপি । প্রক্রিয়া একটি দুটি অংশ প্রক্রিয়া:

  1. আপনার অ্যাফাইন ফাংশনের সহগগুলি সংজ্ঞা দিতে আপনার নিয়ন্ত্রণ পয়েন্টগুলি ব্যবহার করুন
  2. সহগকে নিয়ে যান এবং এগুলি পোস্টগ্রিসের এসT_Affine () এ প্রয়োগ করুন।

আপনি যদি নিজের নিয়ন্ত্রণ পয়েন্টগুলি কোনও সিএসভি ফাইলে রাখেন (old_x, old_y, new_x, new_y), আপনি সহগরিষ্ঠ অংশটি সমাধান করার জন্য লিঙ্ক থেকে আর কমান্ডগুলি প্রায় কাটাতে পারবেন।


7

আমি কিউজিআইএস-এর জন্য ভেক্টর বেন্ডার প্লাগইনটি প্রস্তাব করছি। আমি এটি চেষ্টা করেছিলাম এবং এটি ভাল কাজ করে এবং ব্যবহারকারী হিসাবে বন্ধুত্বপূর্ণ। আপনি যে সংখ্যক পয়েন্ট নির্ধারণ করেছেন তার উপর নির্ভর করে আপনি হয় তা করতে পারেন:

  • অনুবাদসমূহ: প্রথম থেকে শেষের পয়েন্টে অনুবাদ (1 জোড়)
  • ইউনিফর্ম: অনুবাদ, স্কেলিং এবং রোটেশন (2 জোড়া)
  • নমন: অতিরিক্ত বিকৃতি (3 জোড়া বা আরও বেশি)

আপনি এখানে একটি ছোট ভিডিও খুঁজে পেয়েছেন এবং প্লাগইন ইনস্টল করার পরে আমি আপনাকে ভেক্টর বেন্ডার সহায়তা পড়ার পরামর্শ দিই advice


আমি সম্মত, ভেক্টর বেন্ডার প্লাগইন স্বজ্ঞাত এবং এর সাথে কাজ করার জন্য দ্রুত। তবে আমি ভেক্টরগুলিকে মিরর / ফ্লিপ করতে পরিচালনা করতে পারিনি could এই অপারেশনের জন্য আমি আফাইন ট্রান্সফর্মেশন প্লাগইন (কিউজিআইএস ভি 2.18) ব্যবহার করি ।
jurjb

5

GDAL 1.10 প্রকাশের সাথে এটি এখন সম্ভব।

এটি ogr2ogr এ একটি মৌলিক রূপান্তর সম্পাদন করে এবং -gcp ট্যাগের নিয়ন্ত্রণ পয়েন্ট সরবরাহ করে। http://www.gdal.org/ogr2ogr.html

একটি গাইড জন্য দয়া করে দেখুন: http://gisforthought.com/georeferencing-vector-data-using-qgis-and-ogr2ogr/


2

আমাকে কেবল এটি করতে হয়েছিল, এবং এটি শেষ করেছিলাম:

  1. শেফফাইলটি নতুন করে দিন
  2. জিওরফারেন্স প্লাগইন ব্যবহার করে রাস্টার জিওরফারেন্স
  3. একটি gcps.pointsফাইল হিসাবে জিসিপি সংরক্ষণ করুন
  4. এই ফাইলটি ব্যবহার করে affine রূপান্তর গণনা করুন
  5. কিগ্যাসএফাইন ব্যবহার করে শেফফাইলে অ্যাফাইন ট্রান্সফরমেশন প্রয়োগ করুন

নিম্নলিখিত স্ক্রিপ্টটি সংরক্ষিত জিসিপি ব্যবহার করে অ্যাফাইন ট্রান্সফর্মেশন ম্যাট্রিক্সের গণনা করে:

# Computes an affine transform based on QGis GCPs
# Usage: gcp_affine.py gcps.points

import csv
import sys
import numpy as np
from skimage.transform import AffineTransform

u = list(csv.DictReader(open(sys.argv[1], "rb")))
source = [(d["pixelX"], d["pixelY"]) for d in u]
dest = [(d["mapX"], d["mapY"]) for d in u]
source = [map(float, s) for s in source]
dest = [map(float, s) for s in dest]
source = np.array(source)
dest = np.array(dest)
aft = AffineTransform()
aft.estimate(source, dest)
np.set_printoptions(suppress=True)
print aft._matrix

2

একসাথে দুটি বহুভুজ স্নাপ্প করার জন্য আমার উত্তর দেখুন এবং বিনামূল্যে ওপেনজ্যাম্পটি একবার ব্যবহার করে দেখুন।

আমি মনে করি যে এর affine রূপান্তরটি Qgis affine প্লাগইনের চেয়ে অনেক বেশি ব্যবহারকারী বান্ধব।


2

রায়নার এর উত্তরে আমার মন্তব্য অনুসরণ করে, জিআরএসএস v.transfor, যা Sextante টুলবক্স থেকে চালানো যেতে পারে, রূপান্তর পরামিতি গণনা করতে এবং এফাইন ট্রান্সফর্মেশন সম্পাদন করতে তাদের একটি ভেক্টর স্তরে প্রয়োগ করতে পারে। এখানে প্রদর্শিত বিন্যাসে নিয়ন্ত্রণ পয়েন্ট সহ একটি পাঠ্য ফাইল প্রয়োজন ।

এটি ব্যবহার করা খুব সহজ এবং ভালভাবে কাজ করে।


সম্ভবত আমি বুড়ো হয়ে যাচ্ছি, তবে কেবল অবাক হয়েই ভাবেন যে লোকেরা আর্কভিউ 3.0.০ এ শেপওয়ার্প ব্যবহারকারীর অ্যাডনটি মনে রাখে। এটি ব্যবহার করা এত সহজ ছিল। আমি সবসময় এই অন্যান্য সরঞ্জামগুলি খুঁজে পেয়েছি (v.transfor / affine) আরও অনেক জটিল। কিউজিআইএস-এ কেউ শেপওয়ার্পের স্বাচ্ছন্দ্য পুনরায় তৈরি করার চেষ্টা করেনি?
শারদ

2

এখানে প্রদত্ত বেশিরভাগ উত্তর কিউআইজিআইএস 3 এর জন্য আর বিকল্প নয় এবং / অথবা কেবল ভেক্টর ফাইলের লিনিয়ার রূপান্তরকরণের জন্য জিওরিফারেন্সিং করার অনুমতি দেয়। এটি ওপি-র প্রশ্নের উত্তর দিতে পারে, তবে অন্যরা যারা এই পোস্টটি দেখেন তারা ভেক্টর ফাইলগুলিকে জিওরফারেন্সিংয়ের জন্য অন্যান্য রূপান্তর বিকল্পগুলি চাইতে পারেন।

জিওরফারেন্সিং ভেক্টর ফাইলগুলির কয়েকটি সমাধান সহ সমস্যাগুলি:

  • কিউজিএফাইন প্লাগইন কেবল রৈখিক রূপান্তরগুলির জন্য অনুমতি দেয়। এর অর্থ এটি ভেক্টর ফাইলকে স্কেল করতে, ঘোরানো এবং সরাতে পারে তবে এটি ভেক্টর ফাইলটি মোড় বা মোড়তে পারে না। রাস্টার ফাইলগুলির জন্য জিওরিফারেন্সর আরও বিকল্প সরবরাহ করে এবং দ্বিতীয় অর্ডার বহুপদী এবং পাতলা প্লেট স্প্লাইন সহ বিভিন্ন রূপান্তরের জন্য অনুমতি দেয়। এছাড়াও, এটি প্রদর্শিত হয় না যে কিউজিএফাইন প্লাগইন এখনও কিউজিআইএস 3 এ উপলব্ধ।

  • জিআরএসএস মডিউল v.transform কিউজএফাইন প্লাগইনের সাথে সমান এবং কেবল লিনিয়ার ট্রান্সফর্মেশনগুলির জন্য অনুমতি দেয়।

  • ভেক্টর বেন্ডার প্লাগইন দেখে মনে হচ্ছে এটি একটি ভাল বিকল্প ছিল, তবে এটি QGIS 3 এ সম্পূর্ণরূপে পোর্ট করা হয়নি, সুতরাং বর্তমানে কোনও বিকল্প নয়। এটি আর রক্ষণাবেক্ষণ করা হচ্ছে বলে মনে হচ্ছে না।

হিক্কিভ্যাসেন্টোর পোস্টে যেমন পরামর্শ দেওয়া হয়েছে, ওগ্রে 2ogr ব্যবহার করা একটি ভাল বিকল্প। এটি একজনকে জিসিপিগুলি (গ্রাউন্ড কন্ট্রোল পয়েন্টস) ব্যবহার করার অনুমতি দেয় এবং আপনি কী ধরণের রূপান্তর চান তা নির্দিষ্ট করে। এটি কীভাবে করা যায় সে সম্পর্কে আমি কোথাও নির্দেশনা খুঁজে পাইনি, তাই আমি নীচে কিছু নির্দেশাবলীর অন্তর্ভুক্ত করেছি:

  1. জিজিপি জোড়গুলির একটি সেট তৈরি করুন, যার সাথে একটি বিন্দু অজস্র পছন্দসই ভেক্টর ফাইলে আসল অবস্থান এবং অন্যটি বিন্দু আপনার জিওরিফারেন্সড ওয়ার্কস্পেসে পছন্দসই অবস্থান।

  2. জিসিপি তৈরির বিভিন্ন উপায় রয়েছে। আমি কিউজিআইএস-এ জিওরফারেন্সির জিডিএল প্লাগইন ব্যবহার করেছি। প্লাগিন ম্যানেজার ব্যবহার করে এটি ইনস্টল হওয়ার পরে এটি রাস্টার ড্রপডাউন মেনুতে উপলব্ধ। এটি কেবল রাস্টার ফাইলগুলিতে কাজ করে, তাই আপনাকে প্রথমে ভেক্টর ফাইলটিকে একটি রাস্টার ফাইলে রূপান্তর করতে হবে। এটি "প্রসেসিং সরঞ্জামবাক্স: জিডিএল: ভেক্টর রূপান্তর: রাস্টারাইজ (ভেক্টর থেকে রেস্টার)" দিয়ে এটি সম্ভব। রেজোলিউশনটিকে এমন সংখ্যায় সেট করুন যা এখনও ভেক্টর ফাইলের বৈশিষ্ট্যগুলি আপনাকে দেখতে দেয়।

  3. জিয়োরফেনারের একটি দুর্দান্ত ইন্টারফেস রয়েছে, যা আপনাকে অনেকগুলি জিসিপি পয়েন্ট যুক্ত করতে দেয়। আপনি বিভিন্ন রূপান্তরও পরীক্ষা করতে পারেন এবং দেখতে সেরা কোনটি কার্যকর হয়। এবং আপনি দেখতে পাচ্ছেন যে আপনার কোনও জিসিপি পয়েন্ট ভুলভ্রান্ত হওয়ার সম্ভাবনা রয়েছে, তাদের অবশিষ্টাংশগুলি দেখে। একবার আপনি আপনার সমস্ত জিসিপি পয়েন্ট যুক্ত হয়ে গেলে এবং আপনার আউটপুটটি পছন্দ হয়েছে তা যাচাই হয়ে গেলে আপনি জিওরিফারেন্সির কাছ থেকে মূল ভেক্টর ফাইলটি জিওরফারেন্সিংয়ের জন্য ব্যবহার করতে জিসিপি ফাইলটি রফতানি করতে পারেন।

  4. নিম্নলিখিত ফর্ম্যাটে থাকতে জিসিপি ফাইলটি পরিবর্তন করা দরকার। আপনি নিজের পছন্দমতো GCP পয়েন্ট যুক্ত করতে পারেন, প্রতিটি একটি -gcp দ্বারা এগিয়ে যায় এবং একটি স্পেস দ্বারা পৃথক করা হয়। আমি এটি 800+ GCP পয়েন্ট দিয়ে চালিয়েছি এবং এটি দুর্দান্ত কাজ করেছে।

    -gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>
  1. বিভিন্ন উপায়ে রয়েছে যে কোনও একটি GCP পয়েন্টগুলিকে সঠিক ফর্ম্যাটে পরিবর্তন করতে পারে। আমি সেগুলি সিএসভি ফাইল হিসাবে এক্সেলের মধ্যে আমদানি করেছিলাম এবং প্রতিটি পয়েন্টের জন্য সঠিক ফর্ম্যাটের আউটপুট দেওয়ার জন্য একটি কলাম তৈরি করেছি। তারপরে আমি সেই কলামটি টেক্সটএডিটে পেস্ট করেছি এবং রেখাটির প্রান্তটি ফাঁকা জায়গায় প্রতিস্থাপন করেছি।

  2. আপনি ভের্কর ফাইলটি জিওরফারেন্স করতে চান আপনার চূড়ান্ত জিওরফারেন্সযুক্ত ফাইলের জন্য একই এসআরএস ব্যবহার করে আপনার ওয়ার্কস্পেসে আমদানি করা উচিত, যা আপনার কর্মক্ষেত্রের মতো একই এসআরএস হওয়া উচিত। এটি যেখানে হওয়া উচিত এটি থেকে অনেক দীর্ঘ পথ হতে পারে, যদি এটি প্রাথমিকভাবে আলাদা এসআরএস ব্যবহার করে তবে রূপান্তরটি এটিকে সঠিক অবস্থানে নিয়ে যাবে।

  3. "প্রসেসিং সরঞ্জামবাক্স: জিডিএল: ভেক্টর রূপান্তর: রূপান্তর ফর্ম্যাট" এর মাধ্যমে ogr2ogr অ্যাক্সেস করুন। এটি আপনাকে জিওরিফারেন্স করতে চায় এমন ভেক্টর ফাইল এবং আপনার আউটপুট ফাইল নির্বাচন করতে দেয়। "অতিরিক্ত তৈরির বিকল্পগুলি" ক্ষেত্রে, আপনি কী রূপান্তর চান তা নির্দিষ্ট করে একটি কমান্ড যুক্ত করুন এবং তারপরে আপনার সমস্ত জিসিপি পয়েন্টের সাথে লাইন করুন।

  4. বিভিন্ন রূপান্তর প্রকারের কমান্ডগুলির মধ্যে রয়েছে:

    • রৈখিকের জন্য "-অর্ডার 1"
    • "অর্ডার 2" দ্বিতীয় অর্ডার বহুপদী জন্য
    • তৃতীয় অর্ডার বহুপদী জন্য "অর্ডার 3"
    • পাতলা প্লেট স্প্লাইনের জন্য "-tps"।
  5. উদাহরণস্বরূপ, "অতিরিক্ত তৈরির বিকল্পগুলি" ক্ষেত্রের সাথে যুক্ত কোডটি দেখতে দেখতে দেখতে পারা যায়:

-order 2 -gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.