প্রদত্ত মান সহ কক্ষের সংখ্যা গণনা করবেন কীভাবে?


11

আমার কাছে একটি রাস্টার ফাইল রয়েছে যেখানে সমস্ত কক্ষের মান -3 থেকে 7 এর মধ্যে থাকে, কোনও ডেটা মান -9999 হয় না। আমি কীভাবে একটি নির্দিষ্ট মান, উদাহরণস্বরূপ 6 সহ কোষের সংখ্যা গণনা করতে পারি? আমি কি ক্যালকুলেটর ব্যবহার করতে পারি?

উত্তর:


16

দুটি সম্ভব সহজ উপায়:
১)

  • কিউজিআইএস রাস্টার ক্যালকুলেটরটি এটি ইতিমধ্যে উপলভ্য না হলে ইনস্টল করুন (আপনি কোন QGIS সংস্করণটি ব্যবহার করছেন তা নির্দিষ্ট করেননি)
  • এর মতো সূত্র সহ কিউজিআইএস রাস্টার ক্যালকুলেটর ব্যবহার করুন "Corine@1" = 23। এটি 23 মান সহ সমস্ত কক্ষগুলিকে একটি নতুন রাস্টার হিসাবে বের করবে
  • তারপরে কোষের মোট যোগফল গণনা করতে SEGTANTE সরঞ্জামবক্সের মধ্যে "রাস্টার স্তর পরিসংখ্যান" সরঞ্জামটি ব্যবহার করুন।

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

২) আপনি যদি রাস্টার কোষগুলির সংখ্যার উপর আরও পরিশীলিত ওভারভিউ চান তবে আপনি কিউজিআইএস-এর জন্য লেকোস প্লাগইন ব্যবহার করতে পারেন।

  • আপনি আপনার কম্পিউটারে নম্পি, স্কিপি এবং পিআইএল ইনস্টল করেছেন তা নিশ্চিত করুন। এটি আমার ব্লগে বা এখানে উইন্ডোজে কীভাবে করবেন সে সম্পর্কে একটি নির্দেশিকা সন্ধান করুন
  • প্লাগিন ইনস্টলার থেকে LecoS ডাউনলোড করুন এবং এটি সক্ষম করুন। কোনও ত্রুটি পপ আপ করা উচিত।
  • আপনার রাস্টার আকৃতির সাথে ল্যান্ডকভার পরিসংখ্যান সরঞ্জাম (মেনু রাস্টার -> ল্যান্ডস্কেপ বাস্তুবিদ্যা -> ল্যান্ডকভার পরিসংখ্যান) চালান। আপনার আকৃতির একটি সঠিক প্রক্ষেপণ, একটি সেট নো-ডেটা মান এবং বর্গাকার রাস্টার কোষ রয়েছে তা নিশ্চিত করুন।
  • নীচের প্রদর্শিত হিসাবে বিকল্পগুলি চয়ন করুন। আপনি .csv ফাইলে ফলাফলগুলি সংরক্ষণ করতে পারেন। আউটপুটগুলিতে আপনার সমস্ত ল্যান্ডকভার ক্লাসের জন্য মোট ল্যান্ডকভার (সেলনম্বার * রাস্টার সেলসাইজ ^ 2) রয়েছে। এখানে চিত্র বর্ণনা লিখুন

1
কেবলমাত্র লক্ষণীয় যে আজকাল সরঞ্জাম বাক্সটিকে প্রসেসিং বলা হয় ।
Luís de Sousa

9

সম্পাদনা 3 : আমি নীচের কোডটিকে যথেষ্ট ব্যবহারযোগ্য SEXTANTE স্ক্রিপ্টে রূপান্তর করেছি যা নিম্নলিখিত আউটপুট দেয়: এখানে চিত্র বর্ণনা লিখুন

বিস্তারিত নির্দেশনা এবং ডাউনলোড লিঙ্কটি এখানে পাওয়া যাবে


আপনি এই কাজের জন্য পাইথন কনসোল ব্যবহার করতে পারেন। নীচে প্রদত্ত কোডটি অনুলিপি করুন, এটি একটি পাঠ্য ফাইলে আটকান এবং উদাহরণস্বরূপ "" কিছু_স্ক্রিপ্ট.পি "হিসাবে সংরক্ষণ করুন। পরের বার আপনি কিউজিআইএসে পাইথন কনসোল খোলে সেল মানগুলি গণনা করতে হবে, 'শো সম্পাদক' বোতামটি চাপুন এবং এই স্ক্রিপ্টটি সেখানে খুলুন। তারপরে স্ক্রিপ্টের সামনের সারিতে 'রাস্টার_পথ' প্রতিস্থাপন করুন আপনার রাস্টারটির আসল পথ দিয়ে এবং পরিবর্তনগুলি সংরক্ষণ করুন। তারপরে স্ক্রিপ্টটি চালান এবং কনসোল আউটপুটে (নীচে স্ক্রিনশটের সম্পাদক থেকে বাম দিকে) আপনি রাস্টারটিতে থাকা প্রতিটি মানের জন্য কোষের সংখ্যা দেখতে পাবেন।

নোট করুন যে এই স্ক্রিপ্টটি কাজ করার জন্য আপনাকে পাইথন-নম্পি ইনস্টল করতে হবে।

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

সম্পাদনা 2: স্ক্রিপ্টের আরও অগ্রিম সংস্করণ সরবরাহ করা হয়েছে। এখন এটি মাল্টি ব্যান্ড রাস্টারগুলির সাথে কাজ করে এবং এনএএন মানগুলি প্রক্রিয়া করে।

from osgeo import gdal
import sys
import math

path = "raster_path"

gdalData = gdal.Open(path)
if gdalData is None:
  sys.exit( "ERROR: can't open raster" )

# get width and heights of the raster
xsize = gdalData.RasterXSize
ysize = gdalData.RasterYSize

# get number of bands
bands = gdalData.RasterCount

# process the raster
for i in xrange(1, bands + 1):
  band_i = gdalData.GetRasterBand(i)
  raster = band_i.ReadAsArray()

  # create dictionary for unique values count
  count = {}

  # count unique values for the given band
  for col in range( xsize ):
    for row in range( ysize ):
      cell_value = raster[row, col]

      # check if cell_value is NaN
      if math.isnan(cell_value):
        cell_value = 'Null'

      # add cell_value to dictionary
      try:
        count[cell_value] += 1
      except:
        count[cell_value] = 1

  # print results sorted by cell_value
  for key in sorted(count.iterkeys()):
    print "band #%s - %s: %s" %(i, key, count[key])

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


এটি লুপ ব্যবহারের চেয়ে আসলে অনেক সহজ। আপনি করতে পারেন গন্য সরাসরি numpy ব্যবহার পেতে : count = dict(zip(*numpy.unique(a, return_counts=True)))। মেমরির ত্রুটিগুলি এড়ানোর জন্য আপনাকে 64৪-বিট পাইথন চালাচ্ছেন তা নিশ্চিত করার দরকার হতে পারে। যদিও আমি পরীক্ষা করে দেখিনি কীভাবে এটি পরিচালনা করে NaN
jpmc26
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.