AirQualityIndex

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

JSON প্রতিনিধিত্ব
{
  "code": string,
  "displayName": string,
  "aqiDisplay": string,
  "color": {
    object (Color)
  },
  "category": string,
  "dominantPollutant": string,
  "aqi": integer
}
ক্ষেত্র
code

string

সূচক এর কোড. এই ক্ষেত্রটি স্পেস এর পরিবর্তে স্নেক কেস ব্যবহার করে প্রোগ্রামিং উদ্দেশ্যে সূচক উপস্থাপন করে। উদাহরণ: "uaqi", "fra_atmo"।

displayName

string

সূচক নামের একটি মানুষের পাঠযোগ্য উপস্থাপনা। উদাহরণ: "AQI (US)"

aqiDisplay

string

সূচক সাংখ্যিক স্কোরের পাঠ্য উপস্থাপনা, এতে উপসর্গ বা প্রত্যয় চিহ্ন অন্তর্ভুক্ত থাকতে পারে, যা সাধারণত সবচেয়ে খারাপ সূচক স্কোর প্রতিনিধিত্ব করে। উদাহরণ: >100 বা 10+।

দ্রষ্টব্য: আপনি যখন সূচক স্কোর প্রদর্শন করতে চান তখন এই ক্ষেত্রটি ব্যবহার করা উচিত। অ-সংখ্যাসূচক সূচকের জন্য, এই ক্ষেত্রটি খালি।

color

object ( Color )

AQI সাংখ্যিক স্কোর উপস্থাপন করতে ব্যবহৃত রঙ।

category

string

সূচক সংখ্যাসূচক স্কোর ব্যাখ্যা পাঠ্য শ্রেণীবিভাগ. উদাহরণস্বরূপ: "চমৎকার বায়ু গুণমান"।

dominantPollutant

string

প্রভাবশালী দূষণকারী রাসায়নিক প্রতীক। যেমন: "CO"।

aqi

integer

সূচকের সংখ্যাসূচক স্কোর। উদাহরণ: 10, 100।

মান স্বাভাবিক করা হয় না এবং শুধুমাত্র তার সম্পর্কিত বায়ু-গুণমান সূচকের প্রসঙ্গে ব্যাখ্যা করা উচিত। অ-সংখ্যাসূচক সূচকের জন্য, এই ক্ষেত্রটি ফেরত দেওয়া হবে না।

দ্রষ্টব্য: এই ক্ষেত্রটি গণনা, গ্রাফ প্রদর্শন ইত্যাদির জন্য ব্যবহার করা উচিত। সূচক স্কোর প্রদর্শনের জন্য, আপনার AQI প্রদর্শন ক্ষেত্রটি ব্যবহার করা উচিত।

রঙ

RGBA রঙের জায়গায় একটি রঙের প্রতিনিধিত্ব করে। এই উপস্থাপনাটি কম্প্যাক্টনেসের উপর বিভিন্ন ভাষায় রঙের উপস্থাপনা থেকে এবং রূপান্তরের সরলতার জন্য ডিজাইন করা হয়েছে। উদাহরণস্বরূপ, এই উপস্থাপনার ক্ষেত্রগুলি জাভাতে java.awt.Color এর কন্সট্রাকটরকে তুচ্ছভাবে প্রদান করা যেতে পারে; এটি তুচ্ছভাবে UIColor এর +colorWithRed:green:blue:alpha পদ্ধতিতেও প্রদান করা যেতে পারে iOS এ; এবং, সামান্য পরিশ্রমের মাধ্যমে, এটি সহজেই জাভাস্ক্রিপ্টের একটি CSS rgba() স্ট্রিং-এ ফরম্যাট করা যায়।

এই রেফারেন্স পৃষ্ঠাটিতে সম্পূর্ণ রঙের স্থান সম্পর্কে তথ্য নেই যা RGB মানকে ব্যাখ্যা করতে ব্যবহার করা উচিত—উদাহরণস্বরূপ, sRGB, Adobe RGB, DCI-P3, এবং BT.2020। ডিফল্টরূপে, অ্যাপ্লিকেশনগুলিকে sRGB রঙের স্থান অনুমান করা উচিত।

যখন রঙের সমতার সিদ্ধান্ত নেওয়ার প্রয়োজন হয়, তখন বাস্তবায়নগুলি, যদি না অন্যথায় নথিভুক্ত করা হয়, দুটি রঙকে সমান হিসাবে বিবেচনা করুন যদি তাদের সমস্ত লাল, সবুজ, নীল এবং আলফা মান প্রতিটির মধ্যে সর্বাধিক 1e-5 দ্বারা পৃথক হয়।

উদাহরণ (জাভা):

 import com.google.type.Color;

 // ...
 public static java.awt.Color fromProto(Color protocolor) {
   float alpha = protocolor.hasAlpha()
       ? protocolor.getAlpha().getValue()
       : 1.0;

   return new java.awt.Color(
       protocolor.getRed(),
       protocolor.getGreen(),
       protocolor.getBlue(),
       alpha);
 }

 public static Color toProto(java.awt.Color color) {
   float red = (float) color.getRed();
   float green = (float) color.getGreen();
   float blue = (float) color.getBlue();
   float denominator = 255.0;
   Color.Builder resultBuilder =
       Color
           .newBuilder()
           .setRed(red / denominator)
           .setGreen(green / denominator)
           .setBlue(blue / denominator);
   int alpha = color.getAlpha();
   if (alpha != 255) {
     result.setAlpha(
         FloatValue
             .newBuilder()
             .setValue(((float) alpha) / denominator)
             .build());
   }
   return resultBuilder.build();
 }
 // ...

উদাহরণ (iOS / Obj-C):

 // ...
 static UIColor* fromProto(Color* protocolor) {
    float red = [protocolor red];
    float green = [protocolor green];
    float blue = [protocolor blue];
    FloatValue* alpha_wrapper = [protocolor alpha];
    float alpha = 1.0;
    if (alpha_wrapper != nil) {
      alpha = [alpha_wrapper value];
    }
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
 }

 static Color* toProto(UIColor* color) {
     CGFloat red, green, blue, alpha;
     if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
       return nil;
     }
     Color* result = [[Color alloc] init];
     [result setRed:red];
     [result setGreen:green];
     [result setBlue:blue];
     if (alpha <= 0.9999) {
       [result setAlpha:floatWrapperWithValue(alpha)];
     }
     [result autorelease];
     return result;
}
// ...

উদাহরণ (জাভাস্ক্রিপ্ট):

// ...

var protoToCssColor = function(rgb_color) {
   var redFrac = rgb_color.red || 0.0;
   var greenFrac = rgb_color.green || 0.0;
   var blueFrac = rgb_color.blue || 0.0;
   var red = Math.floor(redFrac * 255);
   var green = Math.floor(greenFrac * 255);
   var blue = Math.floor(blueFrac * 255);

   if (!('alpha' in rgb_color)) {
      return rgbToCssColor(red, green, blue);
   }

   var alphaFrac = rgb_color.alpha.value || 0.0;
   var rgbParams = [red, green, blue].join(',');
   return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};

var rgbToCssColor = function(red, green, blue) {
  var rgbNumber = new Number((red << 16) | (green << 8) | blue);
  var hexString = rgbNumber.toString(16);
  var missingZeros = 6 - hexString.length;
  var resultBuilder = ['#'];
  for (var i = 0; i < missingZeros; i++) {
     resultBuilder.push('0');
  }
  resultBuilder.push(hexString);
  return resultBuilder.join('');
};

// ...
JSON প্রতিনিধিত্ব
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
ক্ষেত্র
red

number

ব্যবধানে একটি মান হিসাবে লাল রঙের পরিমাণ [0, 1]।

green

number

ব্যবধানে একটি মান হিসাবে রঙে সবুজের পরিমাণ [0, 1]।

blue

number

ব্যবধানে একটি মান হিসাবে নীল রঙের পরিমাণ [0, 1]।

alpha

number

এই রঙের ভগ্নাংশ যে পিক্সেল প্রয়োগ করা উচিত. অর্থাৎ, চূড়ান্ত পিক্সেল রঙ সমীকরণ দ্বারা সংজ্ঞায়িত করা হয়:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

এর মানে হল যে 1.0 এর মান একটি কঠিন রঙের সাথে মিলে যায়, যেখানে 0.0 এর মান সম্পূর্ণ স্বচ্ছ রঙের সাথে মিলে যায়। এটি একটি সাধারণ ফ্লোট স্কেলারের পরিবর্তে একটি র‍্যাপার বার্তা ব্যবহার করে যাতে এটি একটি ডিফল্ট মান এবং সেট না থাকা মানটির মধ্যে পার্থক্য করা সম্ভব হয়। যদি বাদ দেওয়া হয়, এই রঙের বস্তুটিকে একটি কঠিন রঙ হিসাবে রেন্ডার করা হয় (যেন আলফা মানটি স্পষ্টভাবে 1.0 এর মান দেওয়া হয়েছে)।