জিডিএল দিয়ে ন্যানোস্কেল ডিইএম তৈরি করছে


14

কিছুটা অদ্ভুত প্রশ্ন সম্ভবত, তবে আমার আসল প্রশ্নগুলির আগে আপনাকে পটভূমির একটি বিস্তৃত ব্যাখ্যা দিন:

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

আমি তখন ভেবেছিলাম: আচ্ছা, স্কেল বাদে এটি আসলে একটি ডিজিটাল এলিভেশন মডেল! এবং এর অর্থ হ'ল আমি যদি জিআইএস সরঞ্জামগুলি বুঝে ডিএম ফাইল তৈরি করতে পারি তবে আমি এতে জিআইএস বিশ্লেষণ প্রয়োগ করতে পারি!

যেমনটি হ'ল, আমার তাত্পর্যপূর্ণ অন্যান্য ল্যাবটিতে একটি এএফএম-মেশিন রয়েছে এমন ল্যাবে কাজ করে এবং এটি তার একটি প্রকল্পে ব্যবহার করছে। আমি তার কাছ থেকে কিছু স্ক্যান ফাইল পেয়েছি এবং পাইথন (স্ট্রাক্ট এবং নম্পী) ব্যবহার করে এই বাইনারি ফাইলগুলি পার্স করতে এবং এখন আমার কাছে যা আছে তা 516x512 আকারের একটি বিন্যাসী বিন্যাস যা অন্তর্ 16-মানগুলি দিয়ে পূর্ণ।

আমি পরের দিকে কী পরিকল্পনা করছি এবং আমার যেটির জন্য কিছু সহায়তার দরকার তা হ'ল "সঠিক ডিএম-তে ম্যাপিং"-পার্ট। ডিইএমএস সম্পর্কে আমার কিছু জ্ঞান আছে তবে এগুলির প্রকৃত প্রজন্মের কথা আসলে আমি বেশ নতুন।

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

আপডেট : আমারও বিভিন্ন রেজোলিউশনে একাধিক স্ক্যান রয়েছে তবে একই অঞ্চল of উদাহরণস্বরূপ আমার কাছে দুটি স্ক্যান সম্পর্কিত তথ্য রয়েছে:

বৃহত্তর চিত্র:

Scan Size: 51443.5 nm
X Offset: 0 nm
Y Offset: 0 nm

ছোট (বিস্তারিত) চিত্র:

Scan Size: 5907.44 nm
X Offset: 8776.47 nm
Y Offset: 1486.78 nm

আমি যা ভাবছি তা হ'ল আমার কাস্টম স্থানাঙ্ক পদ্ধতির উত্স 0,0 তে হওয়া উচিত এবং বৃহত্তর চিত্রের জন্য আমি পিক্সেল 0,0 (0,0) এর স্থানাঙ্ক মান এবং পিক্সেল 512,512 স্থানাঙ্ক মান নির্ধারণ করি (51443.5, 51443.5 ) (অনুমান করুন যে অন্য প্রয়োজনীয় পয়েন্টগুলির জন্য আপনি ছবিটি পেয়েছেন)।

তারপরে, বৃহত্তর চিত্র পিক্সেল (0,0) থেকে (8776.47, 1486.78) এবং (512,512) থেকে (8776.47 + 5907.44, 1486.78 + 5907.44) মানচিত্র করবে would

1 ম প্রশ্নটি তখন : আমি কীভাবে এই জাতীয় সমন্বয় সিস্টেমের জন্য একটি প্রজ 4 ডিফ তৈরি করব? উদাহরণস্বরূপ: আমি কীভাবে এই "বাস্তব বিশ্বের স্থানাঙ্কগুলি" আমার কাস্টম সমন্বয় ব্যবস্থাতে অর্পণ করব (বা, যদি আমি স্বাবলম্বীদের পরামর্শ অনুসরণ করি এবং স্থানীয় স্থানাঙ্ক ব্যবস্থা ব্যবহার করি এবং ইউনিটগুলি সম্পর্কে মিথ্যা বলি (যেমন আমার ন্যানোমিটারকে কিলোমিটার হিসাবে গণ্য করি))

তারপরে আমাকে আমার আকাঙ্ক্ষিত 2-মাত্রিক অ্যারে একটি জিওরফারেন্সযুক্ত ডিএম ফাইল ফর্ম্যাটে স্থানান্তর করতে হবে। আমি জিডিএল (বা, বরং পাইথন বাইন্ডিং) ব্যবহার করার কথা ভাবছিলাম।

২ য় প্রশ্নটি তখন : আমি কীভাবে আমার মতো "স্বেচ্ছাসেবী" ডেটা থেকে জিওরফারেন্সড ডিএম তৈরি করব? সাধারণত পাইথনে এবং ওপেন সোর্স লাইব্রেরি ব্যবহার করে।

বিশ্রামটি তখন মোটামুটি সহজ হওয়া উচিত, সঠিক বিশ্লেষণ সরঞ্জামগুলি ব্যবহার করার বিষয়টি। সমস্যাটি হ'ল, এই কাজটি আমার নিজের কৌতূহল দ্বারা চালিত, সুতরাং আমি ন্যানোস্কেল ডেমের সাথে আসলে আমার কী করা উচিত তা আমি নিশ্চিত নই। এই begs

তৃতীয় প্রশ্ন : ন্যানোস্কেল ডিইএম দিয়ে কী করবেন? কোন ধরণের বিশ্লেষণ করা যায়, ডিইএম বিশ্লেষণের জন্য উপযুক্ত সরঞ্জামগুলি কী এবং শেষ পর্যন্ত: এই ডেটা থেকে পাহাড়ের শেড এবং কনট্যুর লাইন সহ একটি মানচিত্র তৈরি করা কি সম্ভব? :)

আমি সমস্ত পরামর্শ এবং পয়েন্টারগুলিকে স্বাগত জানাই, তবে মনে রাখবেন যে আমি বিনামূল্যে বিকল্পগুলি খুঁজছি, কারণ এটি একটি কঠোর শখ ভিত্তিক প্রকল্প যার কোনও বাজেট বা তহবিল নেই (এবং কোনও লিসেন্সযুক্ত জিআইএস-অ্যাপ্লিকেশনগুলিতে আমার অ্যাক্সেস নেই)। তদতিরিক্ত, আমি জানি যে ব্রুকার, এই সংস্থাটি যে এই এএফএম মেশিনগুলি বিক্রয় করে, কিছু সফ্টওয়্যার চালিত করে, তবে এটি ব্যবহার করা কোনও মজাদার নয়।


মজা এবং আকর্ষণীয়! আপনি কিছু নমুনা তথ্য পোস্ট করতে পারেন? প্রজেকশনটিতে ন্যানোমিটার স্কেল থাকা কি প্রয়োজনীয়? ভাবছেন এটি স্কেল করা আরও সহজ, যদিও এটি কিছুটা "প্রতারণা" করছে। বিটিডব্লু আমি অনুমান করি যে আপনি জিডিএল / ওজিআর দিয়ে দীর্ঘ পথ পাড়ি দিতে পারবেন, যদিও প্রজেকশন ইস্যুটি এখনও সমাধান করা দরকার। gdal.org/gdal_grid.html
অ্যালেক্সান্না

ধন্যবাদ! অনুমান করুন এটি কোনও উত্তরের চেয়ে বেশি মন্তব্য। ন্যানোমিটার স্কেল যতদূর যায় আমি বলতে পারি যে কাজগুলি দুর্দান্ত তবে সত্যিকারের ন্যানোসকেলে পিয়াকশনটি সবচেয়ে দুর্দান্ত। যখন নমুনা ডেটার কথা আসে তখন আমাকে কিছু বিধিনিষেধ আছে কিনা তা পরীক্ষা করে দেখতে হবে, তবে এটি মূলত ইনট 16 মানগুলির 2 ম্লান ম্যাট্রিক্স।
atlefren

3
আপনি কেন প্রজ 4 পরামিতি প্রয়োজন? আপনি এই ডেটা অন্য স্থানাঙ্ক সিস্টেমে স্থানান্তর করবেন না (যেমন ভৌগলিক)। ইমো আপনাকে কোনও সমন্বয় ব্যবস্থা ছাড়াই আপনার সমস্ত বিশ্লেষণ করতে সক্ষম হওয়া উচিত। কোনও ডিইএম দ্বারা আপনি কী বোঝেন? বিভিন্ন ধরণের ট্রাইঙ্গুলেটেড পৃষ্ঠ (যেমন একটি ডেলাউই ট্রায়াঙ্গুলেশন করুন) বা রাস্টার মানচিত্র (আপনার এটি ইতিমধ্যে রয়েছে) রয়েছে। অবশ্যই এটি বিশ্লেষণ সফ্টওয়্যার উপর অত্যন্ত নির্ভর করে। প্রোবটি বোঝার জন্য আউটপুট হিসাবে প্রয়োজন হলে অবশ্যই অন্যান্য মানচিত্র তৈরি করতে পারেন। আপনি কটাক্ষপাত করা হতে পারে code.google.com/p/mtex শস্য anlysis জন্য।
mistapink

3
আমার (সিআরএস) প্রয়োজন হওয়ার কারণটি হ'ল: যদি আমি কেবল তৈরি করি, সিআরএস নির্ধারণ না করে একটি জিওটিআইএফএফ বলি, পরিমাপের এককটি পিক্সেল হবে। আমি যদি দূরত্ব পরিমাপ করতে চাই? এবং, আমার যদি দুটি এএফএম স্ক্যান হয় এবং তারা কীভাবে একে অপরের সাথে সম্পর্কিত হয় তা জানতে (কোনও দিক থেকে স্কেল এবং অফসেটের ক্ষেত্রে)। সিআরএস নির্ধারিত হওয়ার সাথে সাথে এক সাথে একাধিক স্ক্যান দেখার সুবিধা হবে
অ্যাটলেফ্রেন

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

উত্তর:


4

ঠিক আছে, মনে হচ্ছে আমি কমপক্ষে 1 & 2 টি সমস্যা সমাধান করেছি। গিথুবে সম্পূর্ণ উত্স কোড , তবে এখানে কিছু ব্যাখ্যা:

একটি কাস্টম সিআরএসের জন্য আমি সিদ্ধান্ত নিয়েছি (প্রতি ভুবার পরামর্শ অনুসারে) "প্রতারণা" করার এবং ইউনিট হিসাবে মিটার ব্যবহার করার। আমি apatialreferences.org এ একটি "স্থানীয় সিআর" পেয়েছি ( এসআর-ওআরজি: 6707 ):

LOCAL_CS["Non-Earth (Meter)",
    LOCAL_DATUM["Local Datum",0],
    UNIT["Meter",1.0],
    AXIS["X",NORTH],
    AXIS["Y",EAST]]

পাইথন এবং জিডিএল ব্যবহার করে এটি পড়া মোটামুটি সহজ:

def get_coordsys():
    #load our custom crs
    prj_text = open("coordsys.wkt", 'r').read()
    srs = osr.SpatialReference()
    if srs.ImportFromWkt(prj_text):
        raise ValueError("Error importing PRJ information" )

    return srs

এছাড়াও, জিডিএল সহ একটি ডিইএম গ্রেট করা আসলে বরং সোজা ছিল (আমি একটি একক-ব্যান্ড জিও-টিফ দিয়ে শেষ করেছি)। লাইন parser.read_layer (0) আমার পূর্বে বর্ণিত 512x512 ম্যাট্রিক্স প্রদান করে।

def create_dem(afmfile, outfile):

    #parse the afm data
    parser = AFMParser(afmfile)

    #flip to account for the fact that the matrix is top-left, but gdal is bottom-left
    data = flipud(parser.read_layer(0))

    driver = gdal.GetDriverByName("GTiff")
    dst_ds = driver.Create(
        outfile,
        data.shape[1],
        data.shape[0],
        1 ,
        gdal.GDT_Int16 ,
    )

    dst_ds.SetGeoTransform(get_transform(parser, data))
    dst_ds.SetProjection(get_coordsys().ExportToWkt())
    dst_ds.GetRasterBand(1).WriteArray(data)
    dst_ds = None

ট্রাইকোয়েস্ট অংশটি আমার ফাইলটিকে সঠিকভাবে "জিওরফারেন্স" কীভাবে বানাতে হবে তা নির্ধারণ করছিলাম, আমি সেটার প্যারামিটারগুলি পেয়ে সেটজিও ট্রান্সফর্ম ব্যবহার করে শেষ করেছি:

def get_transform(parser, data):
    #calculate dims
    scan_size, x_offset, y_offset = parser.get_size()
    x_size = data.shape[0]
    y_size = data.shape[1]
    x_res = scan_size / x_size
    y_res = scan_size / y_size

    #set the transform (offsets doesn't seem to work the way I think)
    #top left x, w-e pixel resolution, rotation, 0 if image is "north up", top left y, rotation, 0 if image is "north up", n-s pixel resolution
    return [0, x_res, 0, 0, 0, y_res]

এই শেষ অংশটি সম্ভবত আমিই সর্বাধিক অনিশ্চিত, আমি যা খুঁজছিলাম তা হ'ল * জিডাল_ট্রান্সফর্ম-দুলার * কিছু লাইন ছিল তবে আমি এই প্রোগ্রামটিগতভাবে করার উপায় খুঁজে পাইনি।

আমি কিউগিসে আমার জিওটিআইএফএফ খুলতে এবং এটি দেখতে সক্ষম হয়েছি (এবং ব্রুকার প্রোগ্রামটি এটির সাথে ঠিকঠাক বলে মনে হচ্ছে ফলাফলের সাথে এটির সাথে তুলনা করছি), তবে আমি সত্যিই আমার প্রশ্নের উত্তরটি 3 নই; এই তথ্য দিয়ে কি করতে হবে। সুতরাং, এখানে আমি পরামর্শের জন্য উন্মুক্ত!


একটি আকর্ষণীয় প্রতিদ্বন্দ্বিতা হ'ল ডেম থেকে দূরত্বের তুলনা পৃথিবীর জায়গাগুলির মধ্যে দূরত্বের সাথে দর্শকদের ঠিক কতটা ছোট ন্যানোস্কেল সম্পর্কে ধারণা দিতে পারে। উদাহরণস্বরূপ htwins.net/scale2
blah238
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.