XY পয়েন্টগুলিকে একটি লাইনে রূপান্তর করুন?


12

কেউ ভুল করে কোনও জিপিএস ট্র্যাকটি ওয়ে পয়েন্ট হিসাবে সংরক্ষণ করেছে এবং তারপরে সেগুলি একটি .csv ফাইলে আমার কাছে প্রেরণ করেছে। তারা পিছনে একটি লাইন চায় (শেফফাইল)। এটিকে কোনও লাইনে রূপান্তরিত করার সহজ পদ্ধতি কোনটি? উপলভ্য সরঞ্জামগুলি হ'ল আর্কেম্যাপ, জিডিএল / ওজিআর এবং কিউগিস কম বেশি পছন্দ অনুসারে। আমি বরং একটি অতিরিক্ত সরঞ্জাম ইনস্টল না; একটি অনলাইন রূপান্তর পরিষেবা ঠিক থাকবে।

Latitude,Longitude,Date,Time,ampm,,,
60.71586,-135.07476,25/07/2010,9:26:15,PM,,,,,
60.71637,-135.07563,25/07/2010,9:26:12,PM,,,,,
60.71648,-135.07612,25/07/2010,9:26:11,PM,,,,,
60.71664,-135.07707,25/07/2010,9:26:09,PM,,,,,
60.71672,-135.07756,25/07/2010,9:26:08,PM,,,,,

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

উত্তর:


23

দেখে মনে হচ্ছে যে আপনি এখানে যে গুরুত্বপূর্ণ জিনিসটি চান তা হ'ল লাইনটির পয়েন্টগুলি ক্যাপচারের সময় তিনটি কলামের সারি জুড়ে ছড়িয়ে দেওয়া হবে ows আপনি যখন কোনও স্প্রেডশীটে ডেটাটি সংগঠিত করতে পেরেছিলেন, আমি প্রায়শই দেখতে পাই দ্রুত স্ক্রিপ্ট লেখাই সর্বাধিক নমনীয়তা সরবরাহ করে:

import csv
from datetime import datetime
try:
    from osgeo import ogr
except ImportError:
    import ogr

SHP_FILENAME = "output.shp"
CSV_FILENAME = "input.csv"

r = csv.reader(open(CSV_FILENAME, 'r'), delimiter=',', quotechar=None)
header = dict(((str, i) for i, str in enumerate(r.next())))

# load data rows into memory
rows = [row for row in r]

# sort by date and time ascending
rows.sort(key=lambda row: datetime.strptime(
        (row[header['Date']] + ' ' + row[header['Time']] + ' ' + 
         row[header['ampam']]), 
        '%d/%m/%Y %I:%M:%S %p'))

# Create new shapefile
ogr.UseExceptions()
ds = ogr.GetDriverByName('ESRI Shapefile').CreateDataSource(SHP_FILENAME)
layer = ds.CreateLayer("data", None, ogr.wkbLineString)

# Create a new line geometry
line = ogr.Geometry(type=ogr.wkbLineString)

# Add GPS points to line
lon_idx, lat_idx = header['Longitude'], header['Latitude']
for row in rows:
    line.AddPoint(float(row[lon_idx]), float(row[lat_idx]))

# Add line as a new feature to the shapefile
feature = ogr.Feature(feature_def=layer.GetLayerDefn())
feature.SetGeometryDirectly(line)
layer.CreateFeature(feature)

# Cleanup
feature.Destroy()
ds.Destroy()

নিস! যে এক রাখা।
নাথান ডাব্লু


8

কিউজিআইএস প্লাগইন "পয়েন্ট 2 ওয়ান" আপনার সন্ধান করা উচিত।

যদি আপনি "এই ক্ষেত্রের দ্বারা বাছাই পয়েন্টগুলি" টিক চিহ্ন না দেন, প্লাগইন সেগুলি স্তরটির অভ্যন্তরীণ পয়েন্ট ক্রমে সংযুক্ত করে। আমি আপনার নমুনাটি ব্যবহার করেছি, পয়েন্টগুলি একটি জিগজ্যাগ ক্রমে সজ্জিত করেছি এবং এটি প্রত্যাশা অনুযায়ী কাজ করেছে:

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


না, এটি অক্ষাংশের ভিত্তিতে এবং পয়েন্টটি টাইম ক্রমের ভিত্তিতে মেলে, দেখুন imgur.com/d2Ycg.jpg সম্ভবত টাইমস্ট্যাম্পগুলিকে 24 ঘন্টা রূপান্তরিত করার জন্য সিএসভির কিছু ম্যাসাজ করা এটি আরও ভাল কাজ করতে পারে
ম্যাট উইলকি

যদি এখনও পয়েন্টস 2 প্লাগইন উপলব্ধ থাকে তবে দয়া করে আমাকে বলুন। আমি জিপিএস পয়েন্ট এবং ম্যানুয়ালি পয়েন্ট যুক্ত (বক্ররেখা মসৃণ করতে) যুক্ত একটি লাইন তৈরি করতে চাই।
গ্রে শ

এটি খুঁজে পেয়েছে
গ্রে শ

3

আর্কজিআইএস 10.0 এর একটি পয়েন্টস টু লাইন সরঞ্জাম রয়েছে।

আমি ডেস্কটপ ডকুমেন্টেশনের জন্য আরকজিআইএস 10.2 পড়ার পরামর্শ দিচ্ছি , তবে সংক্ষেপে:

পয়েন্টগুলি থেকে লাইন বৈশিষ্ট্য তৈরি করে।

...

আউটপুট প্রতিটি বৈশিষ্ট্য লাইন ক্ষেত্রের অনন্য মান উপর ভিত্তি করে করা হবে।

...

ডিফল্টরূপে, প্রতিটি আউটপুট লাইন বৈশিষ্ট্য তৈরি করতে ব্যবহৃত পয়েন্টগুলি সন্ধানের ক্রমে ব্যবহৃত হবে। যদি কোনও আলাদা অর্ডার পছন্দসই হয় তবে একটি বাছাই ক্ষেত্র নির্দিষ্ট করুন।


এটি আমার জন্য একটি দরকারী সরঞ্জাম ছিল। লাইন ফিল্ড বা বাছাই করা ক্ষেত্রটি এটি সঠিক করার জন্য ব্যবহার করা গুরুত্বপূর্ণ (বৈশিষ্ট্যের উপর নির্ভর করে)। আমার ক্ষেত্রে আমাকে লাইন ফিল্ড বিকল্পটি ব্যবহার করতে হয়েছিল (তারিখের গুণাবলী সহ কেবল ক্ষেত্রটি এবং তারিখ + সময় নয়) ব্যবহার করতে হয়েছিল যাতে প্রতিটি তারিখ একটি নতুন লাইন তৈরি করে।
মামলা


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