টপোগ্রাফির কথা বিবেচনা করার সময় সূর্যোদয় / সূর্যাস্তের সময় গণনা করা


11

টপোগ্রাফিকে অ্যাকাউন্টে গ্রহণের জন্য আমি একটি নির্দিষ্ট বছরের জন্য পুরো বছর সূর্যোদয় এবং সূর্যাস্তের সময় গণনা করতে চাই। সম্ভবত সূর্যোদয় / সূর্যাস্ত সঠিক পদ নয়, তবে আমি যা চাই তা হ'ল সূর্য দিগন্তের উপরে উঠে যাওয়ার সময় এবং যে সময় এটি দিগন্তের নীচে নেমে যায় এবং কোনও পাহাড়কে বিবেচনায় নিয়ে যায়।

আমি কিউজিআইএস বা গ্রাস ব্যবহার করছি। আমি একটি নির্দিষ্ট বিন্দু থেকে দিগন্তের কোণ তৈরি করতে r.horizon ব্যবহার করতে পারি, তবে সেখান থেকে সূর্যোদয় / সূর্যাস্তের সময়গুলি কীভাবে যাব তা নিশ্চিত নই।


বিপরীত দর্শনগুলির মতো শোনাচ্ছে ... পর্যবেক্ষক (সূর্য) কোন কোণে অবস্থানটি দেখতে পাবে তারপরে সেইটিকে স্ট্যান্ডার্ড সূর্যোদয় / সেট সময়ের অফসেট হিসাবে ব্যবহার করতে পারে। এটা খুব ভাল প্রশ্ন।
মাইকেল সিসটেমন

উত্তর:


2

আমি আমার জিএনইউ / ডেবিয়ান লিনাক্স সিস্টেমে এপিথ পাইথন প্যাকেজটি ইনস্টল করেছি এবং আমি কিউজিআইএসের পাইথন কনসোলে এটি ব্যবহার করতে পারি। আমি ইউটা লেকের (মার্কিন যুক্তরাষ্ট্র) কাছে একটি পয়েন্টের জন্য একটি পর্যবেক্ষক তৈরি করেছি এবং এটি '2010/6/21' দিনের জন্য সূর্য উত্থাপন এবং অস্তমিতকরণ গণনা করা হয়েছিল। স্ক্রিপ্টটি ছিল:

import ephem

#defining an observer
obs = ephem.Observer()

#defining position
long = '-112.092807'
lat = '40.135114'

obs.long = ephem.degrees(long)
obs.lat = ephem.degrees(lat)

print "long = ", obs.long, "lat = ", obs.lat

#defining date
date = '2010/6/21'

obs.date = ephem.Date(date)

#defining an astronomic object; Sun in this case
sun = ephem.Sun(obs)

r1 = obs.next_rising(sun)
s1 = obs.next_setting(sun)

print "rising sun (UTC time): ", r1
print "setting sun (UTC time): ", s1

r1_lt = ephem.Date(r1 - 6 * ephem.hour) #local time 

(y, mn, d, h, min, s) = r1_lt.tuple()

print "rising sun: (local time): {:.2f}".format( h + min/60. + s/3600. )

s1_lt = ephem.Date(s1 - 6 * ephem.hour) #local time

(y, mn, d, h, min, s) = s1_lt.tuple()

print "setting sun (local time): {:.2f}".format( h + min/60. + s/3600. )

কিউজিআইএসের পাইথন কনসোলে চালানোর পরে, ফলাফলটি ছিল:

>>>execfile(u'/home/zeito/pyqgis_scripts/ephem.py'.encode('UTF-8'))
long =  -112:05:34.1 lat =  40:08:06.4
rising sun (UTC time):  2010/6/21 11:58:58
setting sun (UTC time):  2010/6/21 03:01:14
rising sun: (local time): 5.98
setting sun (local time): 21.02

এই উত্তর।

সম্পাদনা নোট :

একটি নতুন দিগন্ত সংজ্ঞায়িত (উদাহরণস্বরূপ 5 ডিগ্রি):

.
.
.
obs.horizon = '5'

sun = ephem.Sun(obs)

r1 = obs.next_rising(sun)
s1 = obs.next_setting(sun)

print "rising sun (UTC time): ", r1
print "setting sun (UTC time): ", s1

r1_lt = ephem.Date(r1 - 6 * ephem.hour) #local time 

(y, mn, d, h, min, s) = r1_lt.tuple()

print "rising sun: (local time): {:.2f}".format( h + min/60. + s/3600. )

s1_lt = ephem.Date(s1 - 6 * ephem.hour) #local time

(y, mn, d, h, min, s) = s1_lt.tuple()

print "setting sun (local time): {:.2f}".format( h + min/60. + s/3600. )

ফলাফল হলো:

>>>execfile(u'/home/zeito/pyqgis_scripts/ephem.py'.encode('UTF-8'))
long =  -112:05:34.1 lat =  40:08:06.4
rising sun (UTC time):  2010/6/21 12:31:48
setting sun (UTC time):  2010/6/21 02:28:24
rising sun: (local time): 6.53
setting sun (local time): 20.47

এই জন্য আপনাকে ধন্যবাদ, এটি ধাঁধা এক টুকরা মত মনে হচ্ছে। দেখে মনে হচ্ছে যে আমি নির্দিষ্ট সময়ে সূর্যের আজিমুথ এবং উচ্চতা কোণগুলি গণনা করতে পাইপেম ব্যবহার করতে পারি? এরপরে যখন সূর্য দিগন্তের নীচে / উপরে উঠে যায় তখন সময়টি খুঁজতে আমি কীভাবে এটি ব্যবহার করব? (টপোগ্রাফির জন্য হিসাবরক্ষণ, আমি ধরে নিচ্ছি যে সূর্যাস্ত / সূর্যোদয়ের সময় যে এফাম প্যাকেজটি আউটপুট তৈরি করছে এটি পুরোপুরি মসৃণ পৃথিবী ধরেছে))
স্টু

2
সম্ভবত r.horizon এবং পাইপেমের কিছু সংমিশ্রণ কাজ করবে? দু'জনকে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে কোনও চিন্তাভাবনা? গ্রাসে একটি মডিউল r.sun রয়েছে, যা আমি কোনও নির্দিষ্ট দিনে প্রদত্ত স্থানে প্রত্যক্ষ সূর্যালোকের ঘন্টা গণনা করতে, টপোগ্রাফির জন্য অ্যাকাউন্টিং ব্যবহার করতে পারি। এটি প্রায় আমার যা করতে চাইবে তা মনে হচ্ছে, তবে সরাসরি সূর্যের আলো শুরু / থামার প্রকৃত সময়টি আউটপুট বলে মনে হচ্ছে না।
স্টু

প্রতিশ্রুতিবদ্ধ এবং দরকারী, কিন্তু এটি টপোগ্রাফিকে বিবেচনা করে না। কোনও উপত্যকার অভ্যন্তর থেকে দৃশ্যমান দিগন্তটি সত্য দিগন্তের মতো নয় (অবরুদ্ধ)।
বর্ণমালা

@ রিচার্ডলও আপনি 'দিগন্ত' পদ্ধতিতে টোগোগ্রাফি সেট করতে পারেন।
xunilk

1
মনে হচ্ছে দিগন্তের পদ্ধতিটি পুরো দিগন্তের জন্য কেবল একটি একা দিগন্ত কোণ নির্ধারণ করছে? আমরা যদি টপোগ্রাফিটিকে বিবেচনায় নিই, দিগন্তটি পুরোপুরি সমতল নয়। সুতরাং, দিগন্তের কোণটি গণনা করা প্রতিটি পৃথক আজিমুথের জন্য পৃথক হবে। R.horizon মডিউলটি প্রতিটি পৃথক আজিমুথের জন্য দিগন্তে কোণটি আউটপুট দেবে। এটি একটি একক সংখ্যা (উদাহরণস্বরূপ 5 ডিগ্রি) হবে না, বরং সমস্ত আজিমুথের জন্য একশ্রেণীর উচ্চতার একটি সেট সেট (180 ডিগ্রি আজিমুথের 5 ডিগ্রি উচ্চতা, 185 ডিগ্রি আজিমুতে 6 ডিগ্রি উচ্চতা, 190 এ 7 ডিগ্রি উচ্চতা) ডিগ্রি আজিমুথ ইত্যাদি)
স্টু

1

আপনি প্রদত্ত অবস্থান, উচ্চতা, দিন, সময় (গুলি) (এবং গ্রহ;) সূর্যের আজিমুট এবং উচ্চতা কোণগুলির জন্য পাইপেমের মতো লাইব্রেরি ব্যবহার করতে পারেন।


আপনি কি এর বাস্তবায়নের পরামর্শ দিতে পারেন? মূল প্রশ্নটি স্পষ্টভাবে অজগর সম্পর্কে কোনও উল্লেখ করে না তবে উদাহরণটি যথেষ্ট সহজ হলে ওপি এটি গ্রহণ করতে সক্ষম হতে পারে।
মাইকেল সিলিমসন

0

এটি করার জন্য আপনি অজগরটি কিছুটা ব্যবহার করতে পারেন তবে আপনার দর্শকদের অবস্থান থেকে বাস্তব বিশ্বের দিগন্তের কোণটি দেখে মনে হচ্ছে আপনাকে প্রথমে অভিধান বা টেবিল তৈরি করতে হবে। এটি 0 = সত্য উত্তর এবং 1 ডিগ্রির জন্য দিগন্তের কোণ দেওয়ার সাথে 1 ডিগ্রি অন্তর বলতে হবে। এটি আপনার r.horizon থেকে আসতে পারে।

এরপরে pyephemআপনি ক) ব্যবহার করতে পারবেন) observerআপনার পর্যবেক্ষকের অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতাতে একটি তৈরি করতে এবং নির্দিষ্ট দিনের প্রতিটি মিনিটের জন্য এটি সূর্যের আপাত অবস্থানগুলি গণনা করতে ব্যবহার করুন, এগুলি চারটি মান হিসাবে দেওয়া হবে, রা, ডিস, ওয়েট এবং এজেড

তারপরে প্রতিটি সময়ের মানের জন্য আপনি সেই আজিমুতে উন্নত টেবিলের মানের সাথে আলিটি তুলনা করতে পারেন এবং যখন টেবিলে মানটির চেয়ে ওএলটি বড় হয় আপনি সূর্য দেখতে সক্ষম হবেন।

এমনকী আপনি এমন কিছু বিষয়ও খুঁজে পেতে পারেন যেখানে একটি নির্দিষ্ট দিনে সূর্য একটি উপত্যকায় উঠে যায় এবং তার পরে একটি পাহাড়ের পিছনে স্থানের বাইরে চলে যায় এবং তারপরে আবার পাহাড়ের অন্য দিকে উপস্থিত হয়।

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