واجهة المناخ
سبع وثمانون سنة من المناخ اليومي، في كل بقاع اليابسة، من أرشيف واحد — من 1 يناير 1940 إلى ما دون الأسبوع من اليوم، على شبكة ERA5 باستبانة 0.25° (نحو 28 كم). يجيب عن سؤال هل هذا معتاد؟، مع الدليل.
المناخ اليومي#
climate2 أرصدة، +1 عن كل مدة كاملة من 365.25 يومًا ضمن المجالثلاثة عشر حقلًا يوميًا لأي إحداثية يابسة، من 1940 إلى الأسبوع الماضي.
المعاملات
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
lat | float | — | مطلوب. أي إحداثية على اليابسة؛ فالأرشيف عالمي. |
lon | float | — | مطلوب. |
start | ISO date | 1 يناير من سنة النهاية | المجال مسقوف لكل طلب — انظر الخطط. |
end | ISO date | آخر يوم في الأرشيف | |
fields | csv | الحرارة والهطول | اسأل /v1/climate/fields عمّا يستطيع هذا التشغيل الإجابة عنه. |
series | bool | true | تضمين القيم يومًا بيوم. اجعله false حين لا تريد إلا التجميعات. |
format | string | json | json أو csv. وCSV ميزة في الخطط المدفوعة ويعيد الصفوف الشهرية. |
هذا ليس التاريخ الساعي مسبوقًا
بـ GROUP BY. فالحقول اليومية تُشتق مرة واحدة، عند الإدخال، على حدّ
يوم اختير للفيزياء لا للراحة، والحقول المشتقة — الحرارة المحسوسة ومدة السطوع
والرطوبة المتوسطة — تُحسب من السلسلة الساعية الكاملة لا من القيم القصوى
اليومية.
تُقطَّع الأيام عند منتصف الليل الشمسي، لا عند المنطقة الزمنية
السياسية. والإزاحة هي round(longitude / 15).
وهذا خيار متعمَّد وقابل للقياس: فالتجميع على التوقيت العالمي يحيز الحد الأدنى اليومي بمقدار 2.1 °م في أليس سبرينغز، لأن الحد الأدنى يقع قبيل الفجر. والمنطقة الزمنية السياسية أسوأ — فخليتان متجاورتان على جانبَي حدّ ستُقطَّع أيامهما في لحظتين مختلفتين، وخريطة القيم العليا اليومية سترسم حدود المناطق الزمنية.
القيم قيم خلية الشبكة لا قيم النقطة. فنحن لا نعدّل الحرارة إلى ارتفاعك بالضبط. والمزودون الذين يفعلون ذلك سيفترقون عنا ببضعة أعشار الدرجة عند الإحداثية نفسها — حتى 0.4 °م في قياساتنا نحن — ولا رقم منهما خاطئ. فرقمنا هو ما تقوله إعادة التحليل عن تلك الخلية؛ ورقمهم هو تلك القيمة مضافًا إليها معدل تناقص حراري مطبَّق على فرق ارتفاع. وننشر الخلية لتعرف أيّهما تحصل عليه: انظر التغطية والخلايا.
التجميعات الشهرية#
climate2 أرصدة، +1 عن كل مدة كاملة من 365.25 يومًا ضمن المجالالحقول نفسها مجمَّعة حسب الشهر التقويمي.
مجاميع للكميات التراكمية، ومتوسطات وقيم قصوى لما عداها. وبالسعر نفسه للسلسلة اليومية، لأنه يقرأ العمود نفسه.
اطلبها حين يكون الرقم الشهري هو ما ترسمه فعلًا، بدل جلب ثلاثين ضعف البيانات ثم اختزالها بنفسك — فالبطيء هو النقل لا الحساب.
مناخ مكان، في نداء واحد#
climate3 أرصدة، +1 عن كل مدة كاملة من 365.25 يومًا ضمن المجالمعدلات شهرية وسلسلة سنوية وأرقام قياسية واتجاهات وكوپن — بلا حدّ للمجال.
المعاملات
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
lat | float | — | مطلوب. |
lon | float | — | مطلوب. |
start | ISO date | أول يوم في الأرشيف | طلب السجل كله هو الاستعمال الطبيعي لهذه النقطة. |
end | ISO date | آخر يوم في الأرشيف | |
daily | bool | false | يضيف day_normals: معدل كل يوم تقويمي من السنة على نافذتك، مع عدد الأرصاد وراء كل معدل. |
كل ما تقوله صفحة مناخ عن موقع، مختزلًا سلفًا: اثنا عشر معدلًا شهريًا، وصف لكل سنة تقويمية كاملة، والأرقام القياسية على الإطلاق مع تواريخ تسجيلها، واتجاه الاحترار بالمربعات الصغرى مع معنويته، ورمز كوپن-غايغر. لأي إحداثية يابسة على الأرض.
السعر بحسب المجال، والمجال الافتراضي هو الأرشيف كله.
والتسعير 3 أرصدة، +1 عن كل مدة كاملة من 365.25 يومًا ضمن المجال — فنداء بلا start
يغطي من 1940 إلى اليوم ويكلّف
89 رصيدًا لا رصيدًا واحدًا. وعلى الخطة
المجانية يعني ذلك نحو 110 نداءات شهريًا.
ويبقى ذلك الطريق الرخيص إلى هذا الجواب: فتركيبه بنفسك كان سيتطلب تسعة نداءات مسقوفة إلى /v1/climate/daily على المجال نفسه، وهي أغلى مجتمعة وتعيد واحدًا وثلاثين ألف صف عليك اختزالها بعد ذلك. لكنه ليس استعلامًا عابرًا، وصفحة تناديه لكل زائر ستفرغ حصة. فخزّنه مؤقتًا — فجواب إحداثية يتغير مرة واحدة يوميًا على الأكثر.
ومرّر start حين لا تحتاج السجل كله: فثلاثون سنة تكلّف
32 بدل 89.
ولا حدّ للمجال هنا، بخلاف
/v1/climate/daily. فذلك الحدّ موجود لأن من يستطيع سحب
السلسلة يومًا بيوم يستطيع إعادة بناء الأرشيف؛ وهذه النقطة لا تعيد أي سلسلة
أصلًا. فالسجل الكامل يعود في نحو 62 كيلوبايت — و100 كيلوبايت مع
daily=true — مقابل واحد وثلاثين ألف صف يومي اختُزل منها، فهو لا
يعيد بناء شيء. وطلب واحد يحل محل النداءات اليومية التسعة المسقوفة التي كان
الجواب نفسه سيكلّفها لولاه.
daily=true ليست normals?daily=true
وفي هذا الفرق يكمن المعنى. فـنقطة نهاية المعدلات تتوسط على نافذة ثلاثينية للمنظمة العالمية للأرصاد الجوية؛ أما هذه فتتوسط على النافذة التي طلبتها أنت — والأرشيف كله افتراضًا.
وهي السبيل الوحيد لأن تقول «9.4 °م فوق المعتاد لـ 30 يوليو» وخلف
العبارة سبع وثمانون سنة لا ثلاثون. ويحمل كل يوم عدد عيّناته، فيصير التوسيع إلى
معدل مركزي بخمسة عشر يومًا كتابةً Σ(mean·samples) / Σ(samples) —
بالضبط، وبلا طلب ثانٍ.
عرفان يجب معرفتهما قبل المقارنة بمصدر آخر
لا تدخل السنة التقويمية في السلسلة السنوية ولا في الاتجاه إلا إذا حمل الأرشيف 360 يومًا من أيامها على الأقل، فتُستبعد السنة الجارية. فنصف سنة يُقرأ انهيارًا في الهطول ويجرّ معه خط الاتجاه.
وtrends يساوي null دون عشر سنوات كاملة. فدون ذلك لا
يكون الميل إلا ضجيج طقس متلبّسًا ثوب إشارة مناخية، ونحن نفضّل ألا ننشر شيئًا على
أن ننشر رقمًا خاطئًا بثقة. ولهذا السبب نفسه يحمل كل اتجاه p_value
الخاص به وعلامة significant — فاقرأهما قبل أن تستشهد بالميل.
معدلات المنظمة العالمية للأرصاد الجوية#
normals3 أرصدةمتوسط ثلاثيني على فترة مرجعية للمنظمة العالمية للأرصاد الجوية.
المعاملات
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
lat | float | — | مطلوب. |
lon | float | — | مطلوب. |
period | string | 1991-2020 | 1991-2020 أو 1961-1990. وكلتاهما فترة مرجعية للمنظمة العالمية للأرصاد الجوية. |
fields | csv | الحرارة والهطول | |
daily | bool | false | تضمين المعدلات اليومية الـ 366 مع تشتّتاتها، والرقم القياسي للحرّ والبرد لكل يوم تقويمي. |
المعدل ليس متوسط الفترة التي طلبتها اتفاقًا. بل هو متوسط ثلاثيني على نافذة تثبّتها المنظمة العالمية للأرصاد الجوية، حتى يكون شخصان يستشهدان بمعدل مستشهدَين بالشيء نفسه.
وهذا يتطلب الـ scope normals، وهو ما لا يتطلبه
الأرشيف اليومي. فمفتاح يقرأ
/v1/climate/daily بلا مشكلة قد يحصل هنا مع ذلك على
403 scope_denied — انظر الخطط لمعرفة أي درجة
تشمله.
وإن كان مرادك «المعدل على السجل كله» لا على نافذة المنظمة، فاستعمل بدلًا من
ذلك /v1/climate/summary — فهو لا يتطلب إلا الـ
scope climate ويعطيك سبعًا وثمانين سنة بدل ثلاثين.
مقارنة معدلين#
normals6 أرصدةالفترتان المرجعيتان والفرق بينهما، في نداء واحد.
هذا هو السؤال الذي يطرحه أكثر الناس حقًا حين يطلبون معدلًا — لا «ما المعتاد هنا» بل «كم تحرك المعتاد».
والإجابة عنه في طلب واحد تضمن ألا يأتي نصفاه من تشغيلين مختلفين، وهو بالضبط وجه الخلل في حسابه بنفسك من ندائين: فالأرشيف يتقدم بينهما، فيحمل الفرق الذي تنشره تغيّر إصدار إلى جانب تغيّر مناخ.
التغطية والحقول والخلايا#
التشغيل المقدَّم والتواريخ التي يغطيها. دون حاجة إلى مفتاح.
ما يستطيع هذا التشغيل الإجابة عنه، بوحداته، وأي الحقول مشتقة. دون حاجة إلى مفتاح.
climate1 رصيدأي خلية تجيب عن نقطة، وكم تبعد.
شروط ترخيص هذا الأرشيف. دون حاجة إلى مفتاح.
cells/resolve يجيب عن السؤال الذي ينبغي أن يُسأل لكل منتج شبكي
قبل الوثوق به: أي خلية أقرأ فعلًا، وكم تبعد عن النقطة التي سألت عنها؟
فعند 28 كم قد تبلغ تلك المسافة 20 كم، ومعرفتها هي الفرق بين أن تستشهد برقم وأن
تستشهد به بمسؤولية.
وfields له العقد نفسه الذي لـ
/v1/historical/variables: فهو يسرد ما يحويه
التشغيل لا ما قد يحويه المنتج يومًا ما، فلا ينكسر عميل بُني عليه حين يكبر
الأرشيف.
ثبّت الخلية لا الإحداثية حين يجب أن يبقى خط أساس قابلًا للمقارنة عبر السنين. فالإحداثية ثابتة، لكن الخلية التي تخدمها ستنتقل لو تغيرت الشبكة يومًا — وخط الأساس الذي ينتقل صامتًا هو وجه الخلل الذي وُجدت هذه النقطة لمنعه. ولواجهة درجات-اليوم النمط نفسه بمسار مخصص: انظر تثبيت خلية.