কিউজিআইএস ব্যবহার করে ক্ষেত্রের সদৃশ বৈশিষ্ট্যগুলি চিহ্নিত করা?


27

আমার কয়েক হাজার পয়েন্ট সহ একটি পয়েন্ট শেফফাইল রয়েছে। এটিতে একটি আইডি কোড ক্ষেত্র রয়েছে যা অনন্য বলে মনে করা হয়। প্রতিবার এবং পরে ডেটা এন্ট্রি ক্লার্ক ভুল করে আইডি তৈরি করে নকল তৈরি করে। এখনই আমি নকলটি খুঁজতে ম্যানুয়ালি ক্ষেত্রটি স্ক্রোল করছি।

অনুসন্ধান কোয়েরি বিল্ডার ব্যবহার করে এটি করার অন্য কোনও উপায় আছে?


5
আপনার যদি স্বতন্ত্রতা প্রয়োগের প্রয়োজন হয় তবে আমি একটি ডেটাবেস ব্যবহার করার পরামর্শ দিচ্ছি যেমন পোস্টগ্র্রেস / পোস্টজিআইএস, স্প্যাটাইলাইট
নাথান ডাব্লু

আমি একই সমস্যা আছে। আমার কাছে ইউটিএম স্কোয়ারযুক্ত একটি বড় শেফফাইল রয়েছে যাতে নির্দিষ্ট প্রজাতিগুলি ঘটে (এক বর্গাকারে 5 পর্যন্ত, বেশিরভাগ 2)। তবে ঠিক সেগুলি ওভারল্যাপ হওয়ার কারণে মানচিত্রে এগুলির সমস্তটি দেখতে আমার সমস্যা। মিশ্রকরণ বিকল্পগুলি ভয়ঙ্কর দেখাচ্ছে। আমার কর্মসূচীটি ইউটিএম স্কোয়ারে প্রজাতির পরিমাণের উপর নির্ভর করে বহুভুজকে সমান অংশে বিভক্ত করা হবে: আগে: বর্গক্ষেত্রটি 1 টি রঙ দেখায় তবে দুটি প্রজাতি দেখা দেয় বলে দুটি দেখানো উচিত ! [আগে: বর্গক্ষেত্র 1 টি রঙ দেখায় তবে দুটি দেখানো উচিত ] ( i.stack.imgur.com/6WqKn.jpg ) এর পরে: স্কয়ারটি বিভক্ত করুন
হ্যানস লেডেজেন

আমি মনে করি আপনার এখানে শেষে পোস্ট করার পরিবর্তে একটি নতুন প্রশ্ন খোলার উচিত।
জেনস

উত্তর:


7

আইডিগুলি যদি ধারাবাহিক হয় তবে আমি @ শিপ.এসপি প্রস্তাবিত অনন্য মান সহ একটি নতুন অস্থায়ী কলাম যুক্ত করব এবং তারপরে আইডি অনুসন্ধানের জন্য ক্যোয়ারী বিল্ডারটি ব্যবহার করবো! = অনন্য আইডি।

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


18

আরেকটি গ্রাফিকাল, গতিশীল এবং সবচেয়ে গুরুত্বপূর্ণভাবে সহজ ব্যবহার QGIS এর অভিব্যক্তি রচয়িতা: পথ ডুপ্লিকেট বৈশিষ্ট্যাবলী সনাক্ত করতে।

বৈশিষ্ট্য সারণীতে সদৃশ হাইলাইট করুন :

নিম্নলিখিত শর্তের সাথে শর্তসাপেক্ষ বিন্যাস (নীচে লাল তীরটি দেখুন) সক্ষম করুন:

count("FieldWithDuplicates","FieldWithDuplicates") > 1

শীর্ষে সমস্ত নকলকে গোষ্ঠী করতে কলামে ডান ক্লিক করুন, বাছাই
করুন উপরের এক্সপ্রেশনটি প্রবেশ করান ছাড়াই >1, এবং ক্রম বর্ধমান বাছাই করুন নির্বাচন করুন।

QGIS বৈশিষ্ট্য সারণীতে হুবহু নকল বৈশিষ্ট্য

ক্যানভাসে সদৃশ বৈশিষ্ট্য সহ বৈশিষ্ট্য হাইলাইট করুন :

আপনি উপরের শর্তে ফিল্টার সেট সহ একটি নতুন প্রতীক বা লেবেল যুক্ত করতে পারেন।

এবং অবশ্যই আপনি একই ভিত্তিতে প্রাপ্ত একটি ডেটা ওভাররাইড সক্ষম করতে পারেন।

উদাহরণস্বরূপ, আপনি যদি সদৃশ বৈশিষ্ট্যযুক্ত বৈশিষ্ট্যগুলির জন্য লেবেলগুলি হাইলাইট করতে চান তবে নীচের ওভাররাইডের সাহায্যে এটি একটি লেবেল ব্যাকগ্রাউন্ড (= 1) আঁকতে সেট করতে পারেন:

CASE WHEN
count("FieldWithDuplicates","FieldWithDuplicates") > 1
THEN 1
ELSE 0
END

নিম্নলিখিত মত কিছু অর্জন

সদৃশ বৈশিষ্ট্য লেবেলগুলি QGIS ক্যানভাসে হাইলাইট করা হয়েছে

উভয় পরিস্থিতিতে অবশ্যই, আপনি একবারে ডুপ্লিকেট বৈশিষ্ট্যগুলি মুছুন বা পরিবর্তন করুন, তত্ক্ষণাত বিন্যাস / স্টাইলিং আপডেট হয়।


1
এটি এখানকার সবচেয়ে বৈধ উত্তর। আমি কেবল যুক্ত করতে চেয়েছিলাম যে স্ট্যান্ডার্ড ক্যোয়ারী সরঞ্জামের সাথেও অভিব্যক্তিটি সরাসরি ব্যবহার করা যেতে পারে।
সর্বোচ্চ

@ ম্যাক্স কোথাও, আপনার ফিল্টারিং স্তরগুলির জন্য ক্যোয়ারী বিল্ডারটি কী বোঝায়? আমি এটি আসলে Q 3.4 বা 3.8-এ ফলাফলগুলি ফিল্টার করে ফেলতে পারি বলে মনে হচ্ছে না, যদিও আমি বিস্মিত হয়েছি যে এটি Q 2x তে আগের মতো কোনও ত্রুটি ফেলেনি throw
সে

14

গ্রুপ পরিসংখ্যান প্লাগইন ব্যবহার করুন এবং ক্ষেত্রের শ্রেণিবিন্যাস হিসাবে আইডি সেট করুন। আপনি দেখতে পাচ্ছেন যে প্রতিটি মান 'গণনা' কলামে কতবার প্রবেশ করেছে।


13

এটি করার একটি দ্রুত (যদিও অচল) উপায় হ'ল স্তর বৈশিষ্ট্যগুলিতে intoোকার জন্য, স্টাইল নির্বাচন করুন - আপনার আগ্রহী কলামটি ব্যবহার করে শ্রেণিবদ্ধ করুন this এটি প্রয়োগ করুন, তারপরে স্তরগুলির উইন্ডোতে লেয়ারটিতে ডান ক্লিক করুন এবং প্রদর্শন বৈশিষ্ট্য গণনা পরীক্ষা করুন চেকবক্স নেই। তারপরে স্তরগুলি উইন্ডোতে স্তরটি প্রসারিত করুন এবং আপনি প্রতিটি মান কতবার প্রবেশ করিয়েছেন তা অবিলম্বে দেখতে পাবেন।


11

এটি একটি ভাল প্রশ্ন যার উপরে আমি কেবল হোঁচট খেয়েছি। আমি এখনও পর্যন্ত দেওয়া উত্তরগুলির কোন পছন্দ করি না। আমার কাছে অনন্য আইডি সহ একটি বৈধ ডেটাসেট রয়েছে যা অ অনুক্রমিক এবং অ ইন্টিজার নয়। সমস্যাটি হ'ল ডেটাসেটে একক জ্যামিতি রয়েছে তবে কিছু সীমানা প্রকৃতির বহু জ্যামিতি। আমার কাজ হ'ল এই জ্যামিতিগুলি সনাক্ত এবং সংযুক্ত করা।

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

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

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


1
একটি এসকিউএল প্লাগ-ইন ব্যবহার করা সবচেয়ে ভাল উপায়!
দেবদত্ত টেংশে

চমৎকার কাজ করে। অন্য বৈশিষ্ট্য কলামে ন্যূনতম / সর্বাধিক মান সহ বৈশিষ্ট্যটি (নকল থেকে) কীভাবে নির্বাচন করবেন? আমি এটা বুঝতে পারি না। তুমি আমাকে সাহায্য করতে পারবে কি?
christian.gobel

আমি নিশ্চিত নই বুঝতে পেরেছি. (ন্যূনতম / সর্বাধিকের মধ্যে) সীমাটি কী কোনও রেকর্ডটি সদৃশ কিনা তা নির্ধারণ করে?
ডেনিস বাউজুস

4

হ্যাঁ অনুরূপ সমস্যার জন্য আমি মাথাটি দেয়ালের বিপরীতে বেঁধে দিয়েছি।

একই আইডির বৈশিষ্ট্যগুলি সরানোর জন্য আমার স্ক্রিপ্ট এখানে। এটি একাধিক সূচক বৈশিষ্ট্যের সাথে প্রথম বৈশিষ্ট্য নিয়ে এটি নতুন বৈশিষ্ট্য শ্রেণিতে লিখেছে।

#Definition of inputs and outputs
# Written by: Gregor Skrt 
#==================================
##[Example scripts]=group
##input=vector
##unique_field=field input
##output=output vector

#Algorithm body
#==================================
from qgis.core import *
from PyQt4.QtCore import *
from processing.core.VectorWriter import VectorWriter

# "input" contains the location of the selected layer.
# We get the actual object, so we can get its bounds
layer = processing.getobject(input)
provider = layer.dataProvider()
fields = provider.fields()
writer = VectorWriter(output, None, fields, provider.geometryType(), layer.crs() )

inFeat = QgsFeature()
outFeat = QgsFeature()
inGeom = QgsGeometry()
nElement = 0
values = {}

value_field_index = layer.fieldNameIndex(unique_field)

feats = processing.getfeatures(layer)
nFeat = len(feats)

for inFeat in feats:
    progress.setPercentage(int((100 * nElement)/nFeat))
    nElement += 1
    inGeom = inFeat.geometry()
    attrs = inFeat.attributes()
    value = attrs[value_field_index]

    if value not in values:
    #to ne vem ce bo drzalo ???
        values[value]=[]
    outFeat.setGeometry(inGeom)
    outFeat.setAttributes(attrs)
    writer.addFeature(outFeat)
del writer

2

এছাড়াও আপনি গুণাবলীর সাহায্যে বিভাজনটি ব্যবহার করতে পারেন এবং প্রতিটি মানের জন্য পৃথক টেবিল দিয়ে শেষ করতে পারেন।

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

statst
গুণ অনুসারে বিভক্ত স্তরটির জন্য আমার পরামর্শটি ভেক্টর পরিচালনা সরঞ্জামগুলিতে
পরিচালনাও

বিভক্ত করা
যে কোনও একটি ক্ষেত্রে আপনার ডেটা বিভক্ত করুন একটি ডায়ো আপনার গণনা করবে।
শিপ.শীপের সমাধানের চেয়ে আরও অবহেলিত উপায়


2
আপনার পছন্দ মত উত্তর upvoting বিবেচনা করুন!
হোবার

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