কোনও অ্যাট্রিবিউট টেবিলের (অথবা স্তর) একক কলাম থেকে স্বতন্ত্র মানগুলি নির্বাচন করুন


16

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

এসকিউএল-এ আমি টেবিলের নাম থেকে সেল্ট ডিসটিন্ট কলাম নাম লিখব।

উত্তর:


17

অথবা আপনি আর্কটুলবক্স সরঞ্জাম ফ্রিকোয়েন্সি (বিশ্লেষণ সরঞ্জাম >> পরিসংখ্যান >> ফ্রিকোয়েন্সি) চালাতে পারেন যা অনন্য মূল্যবোধের সাথে একটি টেবিল আউটপুট দেয় এবং কতবার প্রদর্শিত হয় তার একটি গণনা।

অথবা আপনি পাইথন স্ক্রিপ্ট লিখতে পারেন যা কোনও ক্ষেত্রে অনুসন্ধানকার্সার পেতে পারে তারপরে ফর্মের সমস্ত মানগুলির একটি তালিকা তৈরি করুন

if value not in myList:
    myList.append(value)

3
আপনি একটি ArcInfo লাইসেন্স না থাকে তাহলে এই টুলবক্স (শুধুমাত্র shapefiles উপর পরীক্ষা) ব্যবহার resources.arcgis.com/gallery/file/geoprocessing/...

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

ধন্যবাদ ড্যান, যে কৌশলটি করেছে। আমার লাইসেন্স ফ্রিকোয়েন্সি সরঞ্জামবক্স সমর্থন করে না।
স্টিভ

12

পাইথন তালিকা বোঝার ব্যবহার করুন।

import arcpy
fldName = 'val_fld'
fcName = 'feature_class.shp'
#set creates a unique value iterator from the value field
myList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName)]) 

বড় ডেটাসেট জন্য একটি মেমরি দক্ষ পদ্ধতি ব্যবহার করতে হবে জেনারেটরের অভিব্যক্তি

myList = set((row.getValue(fldName) for row in arcpy.SearchCursor(fcName,fields=fldName))

1
যেহেতু আপনি কেবল একটি ক্ষেত্রে আগ্রহী, আরও ভাল পারফরম্যান্সের জন্য আমি fieldsmyList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName, fields=fldName)])
alচ্ছিক

ভাল ধারণা. আমি পারফরম্যান্স পার্থক্য পরীক্ষা করতে আগ্রহী হতে হবে। এসডিই ডেটা উত্সগুলির জন্য এটি সম্ভবত তাৎপর্যপূর্ণ, তবে শেফফিল এবং ফাইল জিওডাটাবেসগুলির জন্য আমি প্রশংসনীয় হলে অবাক হব।
থেরেন

এটা অসাধারণ. আমার একটি লিঙ্ক ছিল যা এটি দুর্দান্তভাবে দেখিয়েছিল তবে এটি একদিন ভেঙে যায়। আশা করি এটি দীর্ঘদিন ধরে থাকবে।
জাস্টিন

4

যদি আপনার ডেটা পিজিডিবি ফর্ম্যাটে থাকে তবে আপনি কোয়েরি বিল্ডার ডায়লগগুলির মধ্যে নিম্নলিখিত সংজ্ঞাগুলি করতে পারেন (সংজ্ঞা জিজ্ঞাসা, গুণাবলী দ্বারা নির্বাচন করুন, সরঞ্জামবাক্সের অভিব্যক্তি ইত্যাদি) একটি সাবকিউরি ব্যবহার করে:

টেবিলের নাম থেকে * নির্বাচন করুন ...

column_to_test_for_unique_values IN 
(SELECT column_to_test_for_unique_values
FROM table_name
GROUP BY column_to_test_for_unique_values HAVING
Count(column_to_test_for_unique_values)=1)

এটি সেই রেকর্ডগুলি ফিরিয়ে দেবে যার জন্য কলাম_ টোস্টেস্ট_র_ ইউনিক_ভ্যালুতে মানগুলি অনন্য।


1
আপনি ব্যক্তিগত জিওডাটাবেস-এর মাধ্যমেও DISTINCT ব্যবহার করতে পারেন।
জাকুব সিসাক জিওগ্রাফিক্স

4

আপনার যদি কেবলমাত্র বেসিক (পূর্বে আর্কভিউ নামে পরিচিত) লাইসেন্স থাকে তবে আপনি সারণী দৃশ্যটি খুলতে, একটি কলামে ডান ক্লিক করতে এবং সংক্ষিপ্তকরণ নির্বাচন করতে পারেন।


ধন্যবাদ। এটি কাজ করে, তবে আমি উইন্ডো থেকে তালিকাকে অনুলিপি করতে পারি না!
স্টিভ


1

যদি আপনার ডেটা কোনও এসডিইতে হয় (স্থানিক ডাটাবেস ইঞ্জিন) কেউ পাইথন এবং আরকপির আর্কএসডিএসকিউএলএক্সজেট অবজেক্টটি ব্যবহার করতে পারে। এই "পদ্ধতি" ব্যবহার করে কেউ জটিল স্কয়ার পাস করতে পারে।

# set up executor for sql
executor = arcpy.ArcSDESQLExecute(sde_connection_sql)

# sql statements
select_max = """select max(LOAD_ID) from SDE.FEATURE_CLASS"""

# get load id
result_max_id = executor.execute(select_max)

0

অথবা সিএসভিতে রফতানি করতে আপনার পাইথন স্ক্রিপ্টটি ব্যবহার করুন এবং তারপরে সিএসভি পড়তে অন্য ডেটাবেসের পাইথন এপিআই (স্প্যাটিয়ালাইট বলুন) ব্যবহার করুন এবং একই স্ক্রিপ্টের মধ্যে থেকে এটিতে একটি সঠিক এসকিউএল কোয়েরি করুন। একটি বড় টেবিলের জন্য এটি আপনার নিজস্ব তালিকা নির্মাতাকে ঘূর্ণায়মানের তুলনায় খুব সামান্য দ্রুত হতে পারে no

তবে আপনি এটি করেন তবে এটি এখনও আর্কজিআইএসের একটি বিরক্তিকর "বৈশিষ্ট্য"।


0

distinctসাবকিউরিতে একটি কী ব্যবহার করবেন (নিম্নলিখিতটি একটি এফজিডিবি ফিচারক্লাসে রয়েছে):

"STATE_NAME" = (select distinct "STATE_NAME" from EsriUsaCountiesDetailed)

সহায়তা থেকে দ্রষ্টব্য (10.0) যে এর সীমাবদ্ধতা রয়েছে:

কভারেজ, শেফফাইলস এবং অন্যান্য ননজিওডাটাবেস ফাইল-ভিত্তিক ডেটা উত্স সাবকিউরিয়াকে সমর্থন করে না।


2
"DISTINCT" কেবল ফাইল জিডিবি নয়, ব্যক্তিগত জিডিবি দিয়ে কাজ করে।
জাকুব সিসাক জিওগ্রাফিক্স

0

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

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