কিউজিআইএস-এ পুনরাবৃত্ত কাজগুলি কীভাবে সম্পাদন করবেন?


11

আমি অনেকগুলি ফিচার ফাইলে চিকিত্সা করার চেষ্টা করছি, তাই আমি এটি স্বয়ংক্রিয় করতে চাই।

আসলে, আমার কয়েকটি প্রজাতির স্থানিক বিতরণ এবং একটি গাছপালার ধরণের একটি শেফফাইল রয়েছে।

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

আমি ইতিমধ্যে Sextante প্লাগইন ব্যবহার করে এই কাজটি চেষ্টা করে দেখেছি, তবে শেষে প্রজাতির নামটি শেফফিলের নাম হিসাবে থাকতে পারে না।

কেউ কি এর জন্য কোনও পদ্ধতির পরামর্শ দিতে পারেন?


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

উত্তর:


5

এই ব্লগ এন্ট্রিটি SEXTANTE এ কীভাবে করবেন তা বুঝতে সাহায্য করতে পারে:

http://qgissextante.blogspot.fr/2013/01/using-selection-algorithms.html

আশা করি এটা সাহায্য করবে


হাই, তার জন্য ধন্যবাদ, আমি এটি চেষ্টা করতে চাই, তবে আমি এই ধরণের স্ক্রিপ্টের বিষয়ে বিশেষজ্ঞ নই, সুতরাং এই স্ক্রিপ্টটির সাথে আমাদের কী কী করা উচিত তা আপনি ব্যাখ্যা করতে পারেন? আমাদের এটি অনুলিপি করা উচিত কোথায়? ধন্যবাদ।
Onesime

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

3

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

আর-তে আমি এটির মতো চেষ্টা করব। আপনার কোডটি পরিবর্তন করতে হতে পারে কারণ আমি আপনার ডেটা কাঠামো এবং ভেরিয়েবলগুলি জানি না।

library(raster);library(rgdal);library(sp)         # Load in required packages

vegetation <- readOGR("H:/Examplefolder",          # To load a vegetation polygon shape here 
                      "vegi")                      # called vegi.shp    

setwd(harddriveD)                                  # Now, switch to the directory containing your species shapes
                                                   # and use the following code 
species_files <- grep( ".shp",                     # to extract all shape names
                       dir(),
                       ignore.case=T,
                       value=T)

                                                   # Now read in your speciesfiles in a loop 
for(name in species_files){                        # and do a  vegetation data
                                                   # overlay with your basename
    spec_name <- strsplit(name,split=".shp")[[1]]  # to get only the load in
                                                   # your species name shape. 

    spec_shp <- readOGR(".",spec_name)             # I assume that you have point data. Otherwise change the code.
    ov <- over(spec_shp,vegetation)                # Make a overlay with your vegetation data, 
                                                   # returns a dataframe of the overlaying vegetation shape attributes, 
                                                   # which are within your species shape. 
                                                   # This dataframe has the same number of rows as your input species shape. 
   cd <- coordinates(spec_shp);                    # Therefore you could just append the needed information to your species shape.
   proj <- proj4string(spec_shp)                   # save coordinates and proj.

                                                   # Append your vegetation data to your species shape
   spec_shp$Vegetation <- ov$ShrubSpecies          # Or whatever you want to get. 

   spp <- SpatialPointsDataFrame(                  # In the end export your shape again. 
                    coords=cd,                     # I would advise you to use a different folder. 
                    data=as.data.frame(spec_shp),  # In case you have polygons instead of Point data
                    proj4string=CRS(proj) )        # use the SpatialPolygonDataFrame function. -> help ?SpatialPolygonDataFrame
  writeOGR(spp,                                    #Should result in a new shape 
           "foldername",                           # which has your species name.
           spec_name,
           driver="ESRI Shapefile")                      

}

আমি আপনার লক্ষ্য এবং আপনার ডেটাসেটের গঠন সম্পর্কে অনেক অনুমান করেছি। সম্ভবত কোডটি চেষ্টা করার আগে আপনার প্রয়োজনের সাথে সংশোধন করতে হবে।


আপনার সাহায্যের জন্য ধন্যবাদ, আমি এটি চেষ্টা করব। আমার প্রজাতির ডেটা বহুভুজের মধ্যে রয়েছে (প্রজাতি বিতরণ), তবে আমি মনে করি এটি সম্ভবত একরকম? অনেক ধন্যবাদ
ওনেসিম

আপনাকে কেবল কিছু ফাংশন পরিবর্তন করতে হবে (উদাহরণস্বরূপ স্পটালপলিজোনস ডেটা ফ্রেম) এবং সম্ভবত সম্ভবত ডেটাফ্রেমগুলির তালিকা বা অন্য কোনও কিছু ফেরত দেয়।
কার্লিউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.