কিউজিআইএস ব্যবহার করে এক মিলিয়ন পয়েন্টের উপরে ম্যাপিং


9

আমি কোনও মেটাডেটা ছাড়াই মার্কিন যুক্তরাষ্ট্রে দশ মিলিয়ন ল্যাট / দীর্ঘ পয়েন্ট সহ একটি সিএসভি মানচিত্রের চেষ্টা করছি। আমি কখনও এই বেশি ডেটা ম্যাপ করার চেষ্টা করি নি এবং আমার কী পদক্ষেপ নিতে হবে তা জানতে চাইনি। আমি জানি কিউজিআইএস-এর এটি খুব বেশি ডেটা তাই আমি এটিকে ১০০,০০০ লাইনের সিএসভিতে বিভক্ত করার চেষ্টা করেছি তবে অনেকগুলি ফাইল পেয়েছি যা দিয়ে আমি কী করব তা জানতাম না। আমি ভাবছি শুমারি ব্লক দ্বারা পয়েন্টগুলি একত্রিত করার পক্ষে সবচেয়ে ভাল হতে পারে তবে জাভাস্ক্রিপ্ট (আমি কখনও পাইথন ব্যবহার করি নি) বা কমান্ড লাইন সরঞ্জাম ব্যবহার করে এটি করার সর্বোত্তম উপায়টি জানেন না? কোন পরামর্শ?


2
পোস্টজিআইএস ব্যবহার করে আপনি সহজেই সিএসভি ডাটাবেজে লোড করতে পারেন, তারপরে ল্যাট / লম্বা কলামগুলিকে জ্যামিতিতে রূপান্তর করতে পারেন এবং আপনার কাজ শেষ হয়ে যাবে! তারপরে আপনি পোস্টজিআইএস-এ আপনি যে আদমশুমারি ব্লকটি করতে চান তা সংক্ষিপ্তকরণ / একত্রিত করে সমস্ত কিছু করতে পারেন ... আপনি টার্ফের সাথে কী করতে চাইছেন?
DPSSpatial

2
হাই, জিআইএস স্ট্যাকেক্সচেঞ্জে স্বাগতম। আমি আপনাকে পোস্টগ্রাইএসকিউএল / পোস্টজিআইএস, একটি স্থানিকভাবে সক্ষম ডিটাবেস ইঞ্জিন যা QGIS এর সাথে সুন্দরভাবে ইন্টারফেস করে তা একবার দেখার পরামর্শ দিই। একবার আপনার ডেটাবেস কোনও ডাটাবেজে লোড হয়ে গেলে, এটি শৃঙ্খলার ক্ষেত্রগুলিতে যোগদানের জন্য বা একত্রিত হওয়া তুলনামূলকভাবে নগণ্য হবে, উদাহরণস্বরূপ, আদমশুমারি ট্র্যাক্টগুলিতে বা এটিতে ক্লাস্টারিং করা।
রাফেল

আমি মনে করি রাফেলের মন্তব্য এখন পর্যন্ত সেরা 'উত্তর'। 1 মিলিয়ন পয়েন্টগুলি পোস্টজিআইএস-এ লোড হয়ে যাওয়ার সাথে সাথে কাজ করতে তুচ্ছ এবং কিউজিআইএস-পোস্টজিআইএস ইন্টারফেস সরঞ্জামগুলি খুব ভাল।
আলেকজান্ডার

ধন্যবাদ @ ম্যাপবেকার এবং @ ফ্যাফেল! পোস্টগিসকে এভাবে ব্যবহার করার কথা ভাবিনি। আমি কিউজিউএসে সিএসভি আমদানি করেছি। এটিকে কি পোস্টজিআইএসে রূপান্তর করতে পারে?
ব্যবহারকারী 63623

@ ইরাকেল যখন 1 মিলিয়ন রেকর্ড রয়েছে তখন কি আপনি পোস্টজিআইএসে এক্স, ওয়াইમને জ্যামিতিতে রূপান্তর করার একটি ভাল উপায়টি জানেন? আমি এটি একটি ST_MakePoint পদ্ধতি ব্যবহার করে অনুলিপি করার চেষ্টা করেছি, কিন্তু মেমরিটি বোমা ফাটিয়েছে - ST_GeomFromText কী বিদ্যমান X এবং Y কলাম ব্যবহার করতে পারে?
DPSSpatial

উত্তর:


9

আমি পোস্টগ্রিজ এসকিউএল / পোস্টজিআইএস ব্যবহার করার পরামর্শ দেব, যেহেতু এটি স্থানীয়ভাবে কিউজিআইএস দ্বারা সমর্থিত, অন্যান্য স্থানিক ডেটা (সেন্সাস ট্র্যাক্টের মতো) এর সাথে যুক্ত হওয়ার জন্য কিছু কার্যকরী অন্তর্নির্মিত ফাংশন রয়েছে এবং একটি ডাটাবেস ব্যবহারের ফলে মেমরির সমস্যাগুলি বড় ডেটাসেটের সাথে সীমাবদ্ধ করা উচিত। আমার প্রস্তাবিত পদক্ষেপগুলির সেটটি নীচে। এসকিউএল আদেশগুলি কার্যকর করতে আপনি হয় পিজিএডমিন বা কিউজিআইএস ব্যবহার করতে পারেন , প্রাক্তন আপনাকে ক্যোয়ারিতে আরও তথ্যমূলক ত্রুটি দেবে, পরেরটি আপনাকে প্রশ্নের মানগুলি একটি মানচিত্রে স্তর হিসাবে লোড করতে দেয়। পরে অ্যাক্সেস করতে যান Database > DB Manager > DB Managerএবং দ্বিতীয় বোতামে ক্লিক করুন।

  1. পোস্টজিআইএস স্থাপন করুন , দ্রুত ইনস্টলারও শুরু করুন
  2. আপনার ডাটাবেসের মধ্যে একটি সারণী তৈরি ব্যবহার CREATE TABLEকমান্ড ( উদাহরণস্বরূপ পারেন QGIS এসকিউএল উইন্ডোতে) বা PGAdmin এর এসকিউএল উইন্ডোতে
  3. আপনার সিএসভি কে সিপিএল এসকিএল কমান্ড বা পিজিএডমিনের ইনপুট ফাংশনে অন্তর্নির্মিত পিজিএডমিনে আপনার টেবিলের উপর ডান ক্লিক করে এবং এ ক্লিক করে আমদানি করুন Import...(এটি পরবর্তীকালে সূক্ষ্ম হতে পারে তাই আমি বড় ডেটাসেটের জন্য কপি সুপারিশ করব)।
  4. পিজিএডমিন বা কিউজিআইএস এসকিউএল উইন্ডোতে নিম্নলিখিত এসকিউএল সম্পাদন করে আপনার টেবিলটিতে জ্যামিতি কলাম যুক্ত করুন।

    ALTER TABLE some_table ADD COLUMN geom geometry(Point,4326);
    
  5. এমন কিছু ব্যবহার করে পয়েন্ট জ্যামিতি তৈরি করুন

    UPDATE yourtable SET geom = ST_SetSRID(ST_MakePoint( x, y), 4326);
    
  6. SELECTএরকম কিছু দিয়ে স্টেটমেন্ট ব্যবহার করে ডেটার একটি উপসেট প্রদর্শন করুনLIMIT 50000

  7. বা সেন্সাসের ডেটাতে এরকম কিছু দিয়ে যোগ দিন

    সিডিআইডি নির্বাচন করুন, গণনা
    থেকে সি।
    জিওম সিএনডিতে যোগ করুন

ফাংশন উল্লেখ:
ST_Within
ST_MakePoint
ST_SetSRID


জবাবের জন্য ধন্যবাদ. আমি তিন ধাপ চেষ্টা করেছিলাম কিন্তু আমি কিউজিআইএস-এ টেবিলটি সম্পাদনা করতে পারি না। প্লাগিন ব্যবহার না করে কলাম যুক্ত করার অন্য কোনও উপায় আছে?
ব্যবহারকারী 63623

@ ব্যবহারকারী 6636২৩ একটি অতিরিক্ত পদক্ষেপ অন্তর্ভুক্ত করার জন্য আমি আমার উত্তর আপডেট করেছি যা আপনার সমস্যা সমাধান করবে।
রাফেল

ধন্যবাদ আমি মনে করি 1 এবং 2 এর মধ্যে একটি পদক্ষেপ হারিয়েছে you রাইট? আমি যদিও চেষ্টা করার পরে এটি জমাট বাঁধে। আমি পিজিএডমিন ব্যবহার করার চেষ্টা করেছি কিন্তু আমদানি কার্যটি খুঁজে পাচ্ছি না।
ব্যবহারকারী 63623

পিজিএডমিনে আপনাকে প্রথমে আপনার টেবিলটি তৈরি করতে হবে যেমন একটি বর্গ কোয়েরি ব্যবহার করে: stackoverflow.com/questions/9826833/create-table-in-postgresql , সিএসভি থেকে আপনার সমস্ত কলাম সঠিকভাবে সংজ্ঞায়িত করা হয়েছে। তারপরে আপনি Import...আমদানি উইজার্ডটি অ্যাক্সেস করতে টেবিলের নাম> এ ডান-ক্লিক করতে পারেন , অথবা একটি কপি কমান্ড postgresql.org/docs/current/static/sql-copy.html ব্যবহার করে উত্তরটি আপডেট করব
রাফেল

3

আমি সম্প্রতি একটি সিএসভি থেকে আমদানি করা 1.4 মিলিয়ন পয়েন্টের ডেটাসেটের সাথে কাজ করেছি। আমি সিএসভিতে কোনও অপ্রাসঙ্গিক ক্ষেত্র মুছে ফেলার বিষয়টি নিশ্চিত করেছিলাম। এটি আমার পক্ষে দুর্দান্ত কাজ করেছে, যদিও কিছু প্রক্রিয়াগুলি কার্যকর করতে কিছুটা সময় নিয়েছিল। (কিউজিআইএস 2.12, 64 বিট উইন্ডোজ 7, ​​8 জিবি র‌্যাম)


2

সিউডোকোডে একজন আর প্রার্থী:

library(rgdal) ## for spatial export
library(readr) ## for fast file read

x <- read_csv("file.csv") 
names(x)  ## some as yet unknown columns

coordinates(x) <- c("x", "y")  ## your coordinate names may be different

writeOGR(x, ".", layer = "filepoints", driver = "MapInfo File")

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

যেহেতু আপনার কোনও মেটাডেটা নেই, আপনার কাছে প্রোজ 4 স্ট্রিং (এক্স) <- সিআরএস ("+ প্রজ = কিছু + ইত্যাদি") সেট করতে স্থানাঙ্ক (এক্স) দেওয়ার পরে একটি সেট থাকতে পারে তবে আমরা কেবল আপনার ডেটার জন্য অনুমান করতে পারি।

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