CINXE.COM

Μεταφόρτωση δεδομένων API & Δείγματα σεναρίων

<!doctype html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="el" lang="el" itemscope itemtype="http://schema.org/LocalBusiness" ng-app="waqi"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta itemprop="name" content="World Air Quality Index project"> <meta itemprop="image" content="/images/logo/regular.png"> <meta name="author" content="The World Air Quality Index project" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="viewport" content="width=device-width"> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <title>Μεταφόρτωση δεδομένων API & Δείγματα σεναρίων</title> <link rel="shortcut icon" href="/images/favicon.ico" /> <link rel="apple-touch-icon" sizes="114x114" href="/images/iOS/ico_114.png"/> <link rel="apple-touch-icon" sizes="72x72" href="/images/iOS/ico_72.png"/> <link rel="apple-touch-icon" href="/images/iOS/ico_57.png"/> <meta itemprop="description" name="Description" content="Real-time Air Quality Index for more than 100 countries in the world" http-equiv="Description" /> <meta name="Keywords" http-equiv="Keywords" content=" PM2.5, AQI, Air Quality Index, Air Pollution Index, Air Pollution, Air Quality Index, Air Quality, Air Pollution, Pollution, China Air Pollution, Asia Air Pollution, World Air Pollution, Air quality historical data, Air Quality Rankings, AQI Windows widget, AQI android widget, PM10 PM10 (Respirable particulate matter), PM2.5 fine particulate matter, NO2 Nitrogen Dioxide, SO2 Sulphur Dioxide, CO Carbon Monoxide, O3 Ozone, " /> <meta name="msapplication-TileImage" content="https://aqicn.org/images/iOS/ico_114.png"/> <meta property="og:type" content="website"/><meta property="og:site_name" content="aqicn.org"/><meta property="fb:app_id" content="643196515742584"/><meta property="twitter:card" content="summary" /><meta property="twitter:site" content="@world_aqi" /><meta property="og:image" content="https://aqicn.org/images/aqicn.fbworldmap-201911.png"/><meta property="twitter:image" content="https://aqicn.org/images/aqicn.fbworldmap-201911.png" /><meta property="og:description" content="How polluted is the air today? Check out the real-time air pollution map, for more than 100 countries."><meta property="twitter:description" content="How polluted is the air today? Check out the real-time air pollution map, for more than 100 countries." /><meta property="og:title" content="Μεταφόρτωση δεδομένων API & Δείγματα σεναρίων" /><meta property="twitter:title" content="Μεταφόρτωση δεδομένων API & Δείγματα σεναρίων" /> <!--[if !IE]> --> <style type="text/css">.aqivalue{border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,0.2);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2);margin-top:2px;margin-bottom:2px;width:100%;text-align:center}.aqiwidget{background-color:#f6f9f7;border:1px solid white;min-width:100px;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,0.6);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.6);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.6);padding:0;margin:0;border-spacing:0}</style> <!-- <![endif]--> <!--[if IE]> <link rel="stylesheet" type="text/css" href="https://aqicn.org/css/style.ie.css" /> <![endif]--> <link rel='stylesheet' type='text/css' href='https://aqicn.org/css/style.min.css?_=1582516260' /> <link rel="preconnect" href="https://waqi.info"> <link rel="preconnect" href="https://api.waqi.info"> <script src='https://aqicn.org/air-cache/header/bundle.min.js?_=20250121.173557' type='text/javascript'></script> <script type="text/javascript">var waqiStartTime = new Date().getTime();function jskey() { return (function(){ var u = ""; decodeURIComponent("%603Z3F%5BWiyZBSJdERmDTDKXYnukYh1%2CF%7B%3ARGHh0%5Bh%3E%3E").split('').forEach(function(c){ u += String.fromCharCode(c.charCodeAt(0)-1); });return u; })() } function getLang() { return "el"; }function getLeafletBundle() { return "https://aqicn.org/jscripts/leaflet-light/build/prod/map.d9b34ac5738ee6308e06.js"; }function getLeafletGlBundle() { return "https://aqicn.org/jscripts/leaflet-gl/buildx/prod/map.bd6e2a60b5d1ce8257af.js"; }function getWidgetBundle() { return "https://aqicn.org/air-cache/widget/build/awui.js?_=20231231.100440"; }</script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-0281575029452656", enable_page_level_ads: false, overlays: {bottom: true} }); </script> </head> <body><div id="header" style='z-index:1001;'> <style type="text/css"> .ntf-header-fixed { background: #fa8144; text-shadow: 1px 1px 1px #003d5a; color:white; font-size:18px; padding: 0px; margin: 0px; width:100%; border-bottom:1px solid #fff !important; } .ntf-header-fixed-inner { cursor: pointer; max-width: 1000px; } .ntf-header-fixed b { color:white; } .ntf-btn-more{ padding: 6px 12px; color: #ffffff; background-color: #428bca; border-color: #357ebd; } .ntf-btn-less{ background-color: #fa671d; padding: 5px; } .ntf-btn-min{ background-color: #ccc; padding: 5px; } .ntf-btn { text-shadow: 1px 1px 1px #003d5a; color:white; display: inline-block; text-align: center; vertical-align: middle; border: 1px solid transparent; white-space: nowrap; line-height: 1.42857143; border-radius: 4px; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .ntf-btn:hover{ background-color: #e6e6e6; border-color: #adadad; } .ntf-btn a:hover{ text-transform: none; } .ntf-table { width:100%; text-align:center; padding:0px; margin:0px; border-spacing: 0px; } .ntf-table td { color:#faf0ea; padding:0 10 0 10; font-size:15px; line-height:1.5; } .ntf-large { font-size:21px; } @media only screen and (max-width: 700px) { .ntf-content-flag { display: none; } } @media only screen and (max-width: 500px) { .ntf-content-choice .ntf-btn-more { font-size: 15px;} .ntf-content-choice .ntf-btn-less { font-size: 12px;} } @media only screen and (max-width: 420px) { .ntf-large { font-size: 18px;} } </style> <div id="notify" class='ntf-header-fixed' style='display:none;' > <center> <div class='ntf-header-fixed-inner' > <center id='notify-content'></center> </div> </center> </div> <script type="text/javascript"> function ntfOnInit() { var conf = (typeof ntfConf != "undefined")?ntfConf():{}; try {aqisrv.ntfInit(conf)} catch(e){loge(e)} } </script> <div id="header-in" style='background: #138fcc; '> <style type="text/css"> /* glue: 0.13 hash: 93f0b8008f */ .sprite-isprt-web-logo, .sprite-isprt-web-world, .sprite-isprt-web-talk, .sprite-isprt-web-settings, .sprite-isprt-web-search, .sprite-isprt-web-pen, .sprite-isprt-web-link, .sprite-isprt-web-home, .sprite-isprt-web-heart2, .sprite-isprt-web-heart, .sprite-isprt-web-globe, .sprite-isprt-web-geofencing, .sprite-isprt-web-faq, .sprite-isprt-web-email, .sprite-isprt-web-dustmask, .sprite-isprt-web-direction, .sprite-isprt-web-vn, .sprite-isprt-web-ru, .sprite-isprt-web-pl, .sprite-isprt-web-kr, .sprite-isprt-web-jp, .sprite-isprt-web-hk, .sprite-isprt-web-gb, .sprite-isprt-web-fr, .sprite-isprt-web-es, .sprite-isprt-web-de, .sprite-isprt-web-cn, .sprite-isprt-web-br { background-image: url('https://aqicn.org/images-static/isprites/web-icons/2019-12-01//isprt-web.png?_=1575188640'); background-repeat: no-repeat; } .sprite-isprt-web-logo { background-position: 0 0; width: 28px; height: 28px; } .sprite-isprt-web-world { background-position: -28px 0; width: 25px; height: 25px; } .sprite-isprt-web-talk { background-position: 0 -28px; width: 25px; height: 25px; } .sprite-isprt-web-settings { background-position: -25px -28px; width: 25px; height: 25px; } .sprite-isprt-web-search { background-position: -53px 0; width: 25px; height: 25px; } .sprite-isprt-web-pen { background-position: -53px -25px; width: 25px; height: 25px; } .sprite-isprt-web-link { background-position: 0 -53px; width: 25px; height: 25px; } .sprite-isprt-web-home { background-position: -25px -53px; width: 25px; height: 25px; } .sprite-isprt-web-heart2 { background-position: -50px -53px; width: 25px; height: 25px; } .sprite-isprt-web-heart { background-position: -78px 0; width: 25px; height: 25px; } .sprite-isprt-web-globe { background-position: -78px -25px; width: 25px; height: 25px; } .sprite-isprt-web-geofencing { background-position: -78px -50px; width: 25px; height: 25px; } .sprite-isprt-web-faq { background-position: 0 -78px; width: 25px; height: 25px; } .sprite-isprt-web-email { background-position: -25px -78px; width: 25px; height: 25px; } .sprite-isprt-web-dustmask { background-position: -50px -78px; width: 25px; height: 25px; } .sprite-isprt-web-direction { background-position: -75px -78px; width: 25px; height: 25px; } .sprite-isprt-web-vn { background-position: -103px 0; width: 24px; height: 24px; } .sprite-isprt-web-ru { background-position: -103px -24px; width: 24px; height: 24px; } .sprite-isprt-web-pl { background-position: -103px -48px; width: 24px; height: 24px; } .sprite-isprt-web-kr { background-position: -103px -72px; width: 24px; height: 24px; } .sprite-isprt-web-jp { background-position: 0 -103px; width: 24px; height: 24px; } .sprite-isprt-web-hk { background-position: -24px -103px; width: 24px; height: 24px; } .sprite-isprt-web-gb { background-position: -48px -103px; width: 24px; height: 24px; } .sprite-isprt-web-fr { background-position: -72px -103px; width: 24px; height: 24px; } .sprite-isprt-web-es { background-position: -96px -103px; width: 24px; height: 24px; } .sprite-isprt-web-de { background-position: -127px 0; width: 24px; height: 24px; } .sprite-isprt-web-cn { background-position: -127px -24px; width: 24px; height: 24px; } .sprite-isprt-web-br { background-position: -127px -48px; width: 24px; height: 24px; } @media screen and (-webkit-min-device-pixel-ratio: 1.0), screen and (min--moz-device-pixel-ratio: 1.0), screen and (-o-min-device-pixel-ratio: 100/100), screen and (min-device-pixel-ratio: 1.0), screen and (min-resolution: 1.0dppx) { .sprite-isprt-web-logo, .sprite-isprt-web-world, .sprite-isprt-web-talk, .sprite-isprt-web-settings, .sprite-isprt-web-search, .sprite-isprt-web-pen, .sprite-isprt-web-link, .sprite-isprt-web-home, .sprite-isprt-web-heart2, .sprite-isprt-web-heart, .sprite-isprt-web-globe, .sprite-isprt-web-geofencing, .sprite-isprt-web-faq, .sprite-isprt-web-email, .sprite-isprt-web-dustmask, .sprite-isprt-web-direction, .sprite-isprt-web-vn, .sprite-isprt-web-ru, .sprite-isprt-web-pl, .sprite-isprt-web-kr, .sprite-isprt-web-jp, .sprite-isprt-web-hk, .sprite-isprt-web-gb, .sprite-isprt-web-fr, .sprite-isprt-web-es, .sprite-isprt-web-de, .sprite-isprt-web-cn, .sprite-isprt-web-br { background-image: url('https://aqicn.org/images-static/isprites/web-icons/2019-12-01//isprt-web.png?_=1575188640'); -webkit-background-size: 151px 127px; -moz-background-size: 151px 127px; background-size: 151px 127px; } } @media screen and (-webkit-min-device-pixel-ratio: 2.0), screen and (min--moz-device-pixel-ratio: 2.0), screen and (-o-min-device-pixel-ratio: 200/100), screen and (min-device-pixel-ratio: 2.0), screen and (min-resolution: 2.0dppx) { .sprite-isprt-web-logo, .sprite-isprt-web-world, .sprite-isprt-web-talk, .sprite-isprt-web-settings, .sprite-isprt-web-search, .sprite-isprt-web-pen, .sprite-isprt-web-link, .sprite-isprt-web-home, .sprite-isprt-web-heart2, .sprite-isprt-web-heart, .sprite-isprt-web-globe, .sprite-isprt-web-geofencing, .sprite-isprt-web-faq, .sprite-isprt-web-email, .sprite-isprt-web-dustmask, .sprite-isprt-web-direction, .sprite-isprt-web-vn, .sprite-isprt-web-ru, .sprite-isprt-web-pl, .sprite-isprt-web-kr, .sprite-isprt-web-jp, .sprite-isprt-web-hk, .sprite-isprt-web-gb, .sprite-isprt-web-fr, .sprite-isprt-web-es, .sprite-isprt-web-de, .sprite-isprt-web-cn, .sprite-isprt-web-br { background-image: url('https://aqicn.org/images-static/isprites/web-icons/2019-12-01//isprt-web@2x.png?_=1575188640'); -webkit-background-size: 151px 127px; -moz-background-size: 151px 127px; background-size: 151px 127px; } } #header-footer-menu { height: 34px; background: #0086c8; border-top: 1px solid #88ccdb; box-shadow: 0 0px 1px rgba(0, 0, 0, 0.6); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.6); -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.6); display: none; } .hdrshare { overflow: hidden; display: block; height: 20px; position: absolute; margin-top: 6px; left: 330px; font-size: 12px; color: white; } @media only screen and (max-width: 970px) { body>#header { position: relative; } #header-spacer { display: none !important; } .hsearch { display: none !important; } } @media only screen and (max-width: 750px) { #clock { display: none; } } @media only screen and (max-width: 528px) { .hdrshare { display: none; width: 0px; } } .hdrlang { position: absolute; left: 32px; margin-top: 4px; font-size: 12px; } .hdrlang .hdrlang-flags { overflow: hidden; height: 26px; } .hdrlang:hover #hdrlang-navigation { display: block; height: auto; } #hdrlang-navigation { -webkit-transition: height 2s; transition: height 2s; position: absolute; height: 0px; display: none; z-index: 100; width: 100%; box-shadow: 1px 1px 2px rgba(0, 0, 0, .5); background-color: #f8f8f8; min-width: 300px; left:0px; } .hdrlang-navigation { padding: 5px; min-width: 280px; } .hdrlang-navigation a:hover { text-decoration: none; } .hdrlang-navigation .item:hover { background-color: #eee; } .hdrlang-navigation .item { padding: 0 2px; line-height: 1; } .hdrlang-navigation .item div { font-size: 28px; line-height: 20px; } .hdrlang-navigation .name span { color: #888; font-size: 16px; } .hdrlang-navigation .name { font-size: 18px; font-variant: small-caps; color: #444; } .hdrlang-navigation .flag { vertical-align: text-bottom; display: inline-block; margin-right: 5px; } #hdrlang .hdrlang-flags a.touch-no-click { pointer-events: none; } .hdrlang-flags div { border: 0px; vertical-align: bottom; margin: 1px; display: inline-block; font-size: 28px; line-height: 20px; } </style> <div style="position:absolute;z-index:2000;margin-top:2px;left:2px;"> <a href="/home/el/"> <div class="sprite-isprt-web-logo"></div> </a> </div> <div class='hdrlang' id='hdrlang'> <div class='hdrlang-flags'><a href='https://aqicn.org/data-feed/'><div title='English' class='sprite-isprt-web-gb flag-en'></div></a><a href='https://aqicn.org/data-feed/cn/'><div title='Chinese' class='sprite-isprt-web-cn flag-zh-CN'></div></a><a href='https://aqicn.org/data-feed/jp/'><div title='Japanese' class='sprite-isprt-web-jp flag-ja'></div></a><a href='https://aqicn.org/data-feed/es/'><div title='Spanish' class='sprite-isprt-web-es flag-es'></div></a><a href='https://aqicn.org/data-feed/kr/'><div title='Korean' class='sprite-isprt-web-kr flag-ko'></div></a><a href='https://aqicn.org/data-feed/ru/'><div title='Russian' class='sprite-isprt-web-ru flag-ru'></div></a><a href='https://aqicn.org/data-feed/hk/'><div title='Traditional Chinese' class='sprite-isprt-web-hk flag-zh-TW'></div></a><a href='https://aqicn.org/data-feed/fr/'><div title='French' class='sprite-isprt-web-fr flag-fr'></div></a><a href='https://aqicn.org/data-feed/pl/'><div title='Polish' class='sprite-isprt-web-pl flag-pl'></div></a><a href='https://aqicn.org/data-feed/de/'><div title='German' class='sprite-isprt-web-de flag-de'></div></a><a href='https://aqicn.org/data-feed/pt/'><div title='Portuguese' class='sprite-isprt-web-br flag-pt'></div></a><a href='https://aqicn.org/data-feed/vn/'><div title='Vietnamese' class='sprite-isprt-web-vn flag-vi'></div></a><a href='https://aqicn.org/data-feed/it/'><div title='Italian' class='sprite-isprt-web-it flag-it'>🇮🇹</div></a><a href='https://aqicn.org/data-feed/id/'><div title='Indonesian' class='sprite-isprt-web-id flag-id'>🇮🇩</div></a><a href='https://aqicn.org/data-feed/nl/'><div title='Dutch' class='sprite-isprt-web-nl flag-nl'>🇳🇱</div></a><a href='https://aqicn.org/data-feed/fa/'><div title='Persian' class='sprite-isprt-web-ir flag-fa'>🇮🇷</div></a><a href='https://aqicn.org/data-feed/th/'><div title='Thai' class='sprite-isprt-web-th flag-th'>🇹🇭</div></a><a href='https://aqicn.org/data-feed/hu/'><div title='Hungarian' class='sprite-isprt-web-hu flag-hu'>🇭🇺</div></a><a href='https://aqicn.org/data-feed/el/'><div title='Greek' class='sprite-isprt-web-gr flag-el'>🇬🇷</div></a><a href='https://aqicn.org/data-feed/ro/'><div title='Romanian' class='sprite-isprt-web-ro flag-ro'>🇷🇴</div></a><a href='https://aqicn.org/data-feed/bg/'><div title='Bulgarian' class='sprite-isprt-web-bg flag-bg'>🇧🇬</div></a><a href='https://aqicn.org/data-feed/ur/'><div title='Urdu' class='sprite-isprt-web-pk flag-ur'>🇵🇰</div></a><a href='https://aqicn.org/data-feed/hi/'><div title='Hindi' class='sprite-isprt-web-in flag-hi'>🇮🇳</div></a><a href='https://aqicn.org/data-feed/ar/'><div title='Arabic' class='sprite-isprt-web-ae flag-ar'>🇦🇪</div></a><a href='https://aqicn.org/data-feed/sr/'><div title='Serbian' class='sprite-isprt-web-rs flag-sr'>🇷🇸</div></a><a href='https://aqicn.org/data-feed/bn/'><div title='Bangla' class='sprite-isprt-web-bd flag-bn'>🇧🇩</div></a><a href='https://aqicn.org/data-feed/bs/'><div title='Bosnian' class='sprite-isprt-web-ba flag-bs'>🇧🇦</div></a><a href='https://aqicn.org/data-feed/hr/'><div title='Croatian' class='sprite-isprt-web-hr flag-hr'>🇭🇷</div></a><a href='https://aqicn.org/data-feed/tr/'><div title='Turkish' class='sprite-isprt-web-tr flag-tr'>🇹🇷</div></a><a href='https://aqicn.org/data-feed/uk/'><div title='Ukrainian' class='sprite-isprt-web-ua flag-uk'>🇺🇦</div></a><a href='https://aqicn.org/data-feed/cs/'><div title='Czech' class='sprite-isprt-web-cz flag-cs'>🇨🇿</div></a><a href='https://aqicn.org/data-feed/be/'><div title='Belarusian' class='sprite-isprt-web-by flag-be'>🇧🇾</div></a><a href='https://aqicn.org/data-feed/km/'><div title='Khmer' class='sprite-isprt-web-kh flag-km'>🇰🇭</div></a><a href='https://aqicn.org/data-feed/lo/'><div title='Lao' class='sprite-isprt-web-la flag-lo'>🇱🇦</div></a></div><div id='hdrlang-navigation'> <div id='hdrlang-navigation-inner' class='hdrlang-navigation'> <a href='https://aqicn.org/data-feed/' class='lang-en'><div class='item'><div class='flag sprite-isprt-web-gb'></div><span class='name'>English</span></div></a><a href='https://aqicn.org/data-feed/cn/' class='lang-zh-CN'><div class='item'><div class='flag sprite-isprt-web-cn'></div><span class='name'>Chinese <span>- 简体中文</span></span></div></a><a href='https://aqicn.org/data-feed/jp/' class='lang-ja'><div class='item'><div class='flag sprite-isprt-web-jp'></div><span class='name'>Japanese <span>- 日本</span></span></div></a><a href='https://aqicn.org/data-feed/es/' class='lang-es'><div class='item'><div class='flag sprite-isprt-web-es'></div><span class='name'>Spanish <span>- español</span></span></div></a><a href='https://aqicn.org/data-feed/kr/' class='lang-ko'><div class='item'><div class='flag sprite-isprt-web-kr'></div><span class='name'>Korean <span>- 한국의</span></span></div></a><a href='https://aqicn.org/data-feed/ru/' class='lang-ru'><div class='item'><div class='flag sprite-isprt-web-ru'></div><span class='name'>Russian <span>- русский</span></span></div></a><a href='https://aqicn.org/data-feed/hk/' class='lang-zh-TW'><div class='item'><div class='flag sprite-isprt-web-hk'></div><span class='name'>Traditional Chinese <span>- 繁體中文</span></span></div></a><a href='https://aqicn.org/data-feed/fr/' class='lang-fr'><div class='item'><div class='flag sprite-isprt-web-fr'></div><span class='name'>French <span>- Francais</span></span></div></a><a href='https://aqicn.org/data-feed/pl/' class='lang-pl'><div class='item'><div class='flag sprite-isprt-web-pl'></div><span class='name'>Polish <span>- Polski</span></span></div></a><a href='https://aqicn.org/data-feed/de/' class='lang-de'><div class='item'><div class='flag sprite-isprt-web-de'></div><span class='name'>German <span>- Deutsch</span></span></div></a><a href='https://aqicn.org/data-feed/pt/' class='lang-pt'><div class='item'><div class='flag sprite-isprt-web-br'></div><span class='name'>Portuguese <span>- Português</span></span></div></a><a href='https://aqicn.org/data-feed/vn/' class='lang-vi'><div class='item'><div class='flag sprite-isprt-web-vn'></div><span class='name'>Vietnamese <span>- Tiếng Việt</span></span></div></a><a href='https://aqicn.org/data-feed/it/' class='lang-it'><div class='item'><div class='flag sprite-isprt-web-it'>🇮🇹</div><span class='name'>Italian <span>- Italiano</span></span></div></a><a href='https://aqicn.org/data-feed/id/' class='lang-id'><div class='item'><div class='flag sprite-isprt-web-id'>🇮🇩</div><span class='name'>Indonesian <span>- bahasa Indonesia</span></span></div></a><a href='https://aqicn.org/data-feed/nl/' class='lang-nl'><div class='item'><div class='flag sprite-isprt-web-nl'>🇳🇱</div><span class='name'>Dutch <span>- Nederlands</span></span></div></a><a href='https://aqicn.org/data-feed/fa/' class='lang-fa'><div class='item'><div class='flag sprite-isprt-web-ir'>🇮🇷</div><span class='name'>Persian <span>- فارسی</span></span></div></a><a href='https://aqicn.org/data-feed/th/' class='lang-th'><div class='item'><div class='flag sprite-isprt-web-th'>🇹🇭</div><span class='name'>Thai <span>- ภาษาไทย</span></span></div></a><a href='https://aqicn.org/data-feed/hu/' class='lang-hu'><div class='item'><div class='flag sprite-isprt-web-hu'>🇭🇺</div><span class='name'>Hungarian <span>- Magyar</span></span></div></a><a href='https://aqicn.org/data-feed/el/' class='lang-el'><div class='item'><div class='flag sprite-isprt-web-gr'>🇬🇷</div><span class='name'>Greek <span>- Ελληνικά</span></span></div></a><a href='https://aqicn.org/data-feed/ro/' class='lang-ro'><div class='item'><div class='flag sprite-isprt-web-ro'>🇷🇴</div><span class='name'>Romanian <span>- Română</span></span></div></a><a href='https://aqicn.org/data-feed/bg/' class='lang-bg'><div class='item'><div class='flag sprite-isprt-web-bg'>🇧🇬</div><span class='name'>Bulgarian <span>- български</span></span></div></a><a href='https://aqicn.org/data-feed/ur/' class='lang-ur'><div class='item'><div class='flag sprite-isprt-web-pk'>🇵🇰</div><span class='name'>Urdu <span>- اردو</span></span></div></a><a href='https://aqicn.org/data-feed/hi/' class='lang-hi'><div class='item'><div class='flag sprite-isprt-web-in'>🇮🇳</div><span class='name'>Hindi <span>- हिंदी</span></span></div></a><a href='https://aqicn.org/data-feed/ar/' class='lang-ar'><div class='item'><div class='flag sprite-isprt-web-ae'>🇦🇪</div><span class='name'>Arabic <span>- العربية</span></span></div></a><a href='https://aqicn.org/data-feed/sr/' class='lang-sr'><div class='item'><div class='flag sprite-isprt-web-rs'>🇷🇸</div><span class='name'>Serbian <span>- Српски</span></span></div></a><a href='https://aqicn.org/data-feed/bn/' class='lang-bn'><div class='item'><div class='flag sprite-isprt-web-bd'>🇧🇩</div><span class='name'>Bangla <span>- বাংলা</span></span></div></a><a href='https://aqicn.org/data-feed/bs/' class='lang-bs'><div class='item'><div class='flag sprite-isprt-web-ba'>🇧🇦</div><span class='name'>Bosnian <span>- босански</span></span></div></a><a href='https://aqicn.org/data-feed/hr/' class='lang-hr'><div class='item'><div class='flag sprite-isprt-web-hr'>🇭🇷</div><span class='name'>Croatian <span>- hrvatski</span></span></div></a><a href='https://aqicn.org/data-feed/tr/' class='lang-tr'><div class='item'><div class='flag sprite-isprt-web-tr'>🇹🇷</div><span class='name'>Turkish <span>- Türkçe</span></span></div></a><a href='https://aqicn.org/data-feed/uk/' class='lang-uk'><div class='item'><div class='flag sprite-isprt-web-ua'>🇺🇦</div><span class='name'>Ukrainian <span>- українська</span></span></div></a><a href='https://aqicn.org/data-feed/cs/' class='lang-cs'><div class='item'><div class='flag sprite-isprt-web-cz'>🇨🇿</div><span class='name'>Czech <span>- čeština</span></span></div></a><a href='https://aqicn.org/data-feed/be/' class='lang-be'><div class='item'><div class='flag sprite-isprt-web-by'>🇧🇾</div><span class='name'>Belarusian <span>- беларускі</span></span></div></a><a href='https://aqicn.org/data-feed/km/' class='lang-km'><div class='item'><div class='flag sprite-isprt-web-kh'>🇰🇭</div><span class='name'>Khmer <span>- ខ្មែរ</span></span></div></a><a href='https://aqicn.org/data-feed/lo/' class='lang-lo'><div class='item'><div class='flag sprite-isprt-web-la'>🇱🇦</div><span class='name'>Lao <span>- ລາວ</span></span></div></a></div> </div> </div> <div class="hdrshare"> <script type="text/javascript"> function initSharing() { aqisrv.here().then(function(where){ country = where.Country.IsoCode; if (country!='CN') { loadScriptAsync("https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v5.0&appId=643196515742584&autoLogAppEvents=1") } }).catch(function(e){ console.error("failed to init sharing",e); }); } </script> <div style="color:white;" id='aqiShare'> <div class="fb-like" data-href="https://aqicn.org/here/" data-width="" data-layout="button_count" data-action="like" data-size="small" data-lazy="true" data-colorscheme="dark" data-share="true"></div> </div> </div> <div class="hsearch active" id="hsearch-container" style='display:none;'> <div class="hsearch-inner"> <div id="hsearch-btn"> <div id="hsearch-magnifier"></div> <div id="hsearch-loading"></div> </div> <div class="left"></div> <form id='hseach-form' action='/search/el/'> <input id="hsearch-input" type="text" value="" autocomplete="off" name="q"> </form> <div class="right"></div> </div> </div> <div class='hsearch-result' id='hsearch-result'></div> <div id="clock"><span id="ClockTime"></span></div> </div> <div id="fixed-header-shadow-down-out"> <div id="fixed-header-shadow-down"></div> </div> </div> <div id='header-top-mark'></div> <div style='height:32px;' id='header-spacer'></div> <div id='header-footer-menu'></div> <style type="text/css"> .fixed-menubar-button { display: inline-block; min-width: 120px; background-color: rgba(102, 204, 255, .5); margin: 3px; font-weight: normal; border-radius: 2px; padding: 5px 0; } .fixed-menubar-button:hover { background: #0086c8; } #fixed-menubar { bottom: 0px; z-index: 8000; position: fixed; background: #0086c8; height: 38px; width: 100%; text-align: left; box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); -moz-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); -webkit-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); } #fixed-menubar, #footer-overlay { font-family: "Noto Serif", Cambria, "Palatino Linotype", "Book Antiqua", "URW Palladio L", serif; display: flex; align-items: center; justify-content: center; flex-direction: row; overflow-x: hidden; width: 100%; } .menubar-inner .menubar-cell { display: inline-block; height: 38px; align-items: center; } .menubar-inner .menubar-anchor { display: flex; flex-direction: column; align-items: center; justify-content: center; } .menubar-inner .menubar-cell a { height: 38px; } .menubar-inner .menubar-cell:nth-child(n+1) { border-left: 1px solid #62a6c8; } .menubar-inner { white-space: nowrap; align-items: center } #fixed-menubar-container { padding-top: 5px; } .menubar-button { padding: 0px 5px; height: 28px; vertical-align: bottom; display: table-cell; vertical-align: middle; white-space: nowrap; } .menubar-cell:hover { background-color: rgb(127, 194, 227); } .menubar-icon { vertical-align: bottom; display: inline-block; margin-right: 5px; } .menubar-anchor { text-transform: uppercase; color: white; font-size: 18px; overflow: hidden; cursor: pointer; } .menubar-inner .menubar-cell.no-menu-text .menubar-title { display: none; } a.menubar-anchor { text-decoration: none; } .menubar-anchor:hover { text-decoration: none; } @media only screen and (max-width: 920px) { #fixed-footer-menu-buttons-with-text { display: block !important; } .menubar-button { padding: 0px 15px; } .menubar-anchor { padding: 0; } } @media only screen and (max-width: 800px) { .menubar-button { padding: 0px 10px; } } @media only screen and (max-width: 680px) { .menubar-anchor { font-size: 16px; } .menubar-title { display: none; } .menubar-button { padding: 0px 5px; } } @media only screen and (max-width: 600px) { .menubar-anchor { font-size: 15px; } } @media only screen and (max-width: 520px) { .menubar-anchor { font-size: 14px; } .menubar-button { padding: 0px 3px; } } @media only screen and (max-width: 320px) { .menubar-anchor { font-size: 10px; } .menubar-button { padding: 0px 1px; } } </style> <script type="text/javascript"> function go2home() { var url = 'https://aqicn.org/here/el/'; ; url = AqiSettings.getCurrentStationUrl() || url; window.location.href = url; } </script> <div id='fixed-menubar'> <div id='fixed-menubar-inner' class='menubar-inner'> <div class='menubar-cell'><a onclick='go2home();' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-home menubar-icon' title='Σπίτι'></div><span class='menubar-title'>Σπίτι</span></div></a></div><div class='menubar-cell'><a href='/here/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-geofencing menubar-icon' title='Εδώ'></div><span class='menubar-title'>Εδώ</span></div></a></div><div class='menubar-cell'><a href='/map/world/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-globe menubar-icon' title='Χάρτης'></div><span class='menubar-title'>Χάρτης</span></div></a></div><div class='menubar-cell'><a href='/mask/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-dustmask menubar-icon' title='Μάσκα'></div><span class='menubar-title'>Μάσκα</span></div></a></div><div class='menubar-cell'><a href='/faq/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-faq menubar-icon' title='Συχνές ερωτήσεις'></div><span class='menubar-title'>Συχνές ερωτήσεις</span></div></a></div><div class='menubar-cell'><a href='/city/all/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-search menubar-icon' title='Αναζήτηση'></div><span class='menubar-title'>Αναζήτηση</span></div></a></div><div class='menubar-cell'><a href='/contact/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-talk menubar-icon' title='Επικοινωνία'></div><span class='menubar-title'>Επικοινωνία</span></div></a></div><div class='menubar-cell'><a href='/links/el/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-link menubar-icon' title='Συνδέσεις'></div><span class='menubar-title'>Συνδέσεις</span></div></a></div><div class='menubar-cell'> <a id='menubar-settings' class='menubar-anchor'> <div class='menubar-button'> <div class='sprite-isprt-web-settings menubar-icon' id='footer-settings-img'></div> </div> </a> </div> </div> </div> <script> try { (function () { var innerMenu = document.getElementById('fixed-menubar-inner'); var items = innerMenu.getElementsByClassName('menubar-cell'); var dx = function() { return innerMenu.getBoundingClientRect().width - window.innerWidth;}; for (let i = items.length - 1; i >= 0 && dx() >= 0; i--) { items[i].classList.add("no-menu-text"); } }()); } catch (e) { console.error(e) } try { navmenu.init(); } catch (e) {} </script><div class='h1section'><h1><div id='h1header1' style='padding:2px;padding:5px 0;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;;'>Μεταφόρτωση δεδομένων API & Δείγματα σεναρίων</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header1',.88,{maxfs:45}); }; </script><style> .section-outer { text-align: initial; } .section-content { max-width: 95%; width: 1100px; font-size: 18px; min-height: 300px; text-align: initial; margin-top: 10px; margin-bottom: 10px; line-height: 1.8; margin-left: auto; margin-right: auto; } .section-content-tight { min-height: 0px; } .section-content-alt { background-color: #f0f0f0; border-top: 1px solid #ccc; border-bottom: 1px solid #ddd } ; .section-banner { background-size: 100%; background: url(https://aqicn.org/images//bluesky-banner-panoramic.jpg) no-repeat center bottom #eee; margin-top: -2px; z-index: -1; border-bottom: 1px solid #888; width: 100%; } .h2-title { font-family: inherit; font-size: 1.1em; overflow: hidden; text-align: center; text-transform: capitalize; } .h2-title:before, .h2-title:after { background-color: #ddd; content: ''; display: inline-block; height: 1px; position: relative; vertical-align: middle; width: 50%; } .h2-title:before { right: 0.5em; margin-left: -50%; } .h2-title:after { left: 0.5em; margin-right: -50%; } @media only screen and (max-width: 800px) { .section-content { line-height: 1.6; max-width: 98%; min-height: 10px; } .section-banner { display: none; } } </style> <div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' ><div id="gtrans-div-id" style="float:right" class="gtrans-div"></div><script>try { googleTranslate(); } catch (e) {}</script><script src='https://aqicn.org/air-cache/jquery-3.7.1.min.js?_=20250116.195014' type='text/javascript'></script><script src='/jscripts/formantic-ui/dist/components/calendar.min.js?_=20191228.123631&type=script'></script><script src='/jscripts/formantic-ui/dist/semantic.min.js?_=20191228.123631&type=script'></script><link href='/jscripts/formantic-ui/dist/semantic.min.css?_=20191228.123631&type=css' rel='stylesheet'/><script src='/jscripts/d3/d3.v5.min.js?_=20200504.104833&type=script'></script> <p>Το πρώτο βήμα είναι να λάβετε ένα διακριτικό από τη <a href='https://aqicn.org/data-platform/token/#/' target=_token>σελίδα πλατφόρμας δεδομένων</a>.</p> <p>Αφού αποκτήσετε το δικό σας διακριτικό, μπορείτε να χρησιμοποιήσετε το παρακάτω σενάριο για να ανεβάσετε τα δεδομένα σας. Αφού ανεβάσετε τα δεδομένα του πρώτου σας σταθμού, μεταβείτε στη διεύθυνση <a href='/data-feed/verification/'>aqicn.org/data-feed/verification/</a> για να διαμορφώσετε τους σταθμούς σας και να επαληθεύσετε τα μεταφορτωμένα δεδομένα.</p> <style type='text/css'>section {margin-top:20px;margin-bottom: 80px;}@media only screen and (max-width: 800px) { border-top: 1px solid #ccc;}@media only screen and (min-width: 800px) { section {padding-left: 20px;border-left: 3px solid #f8f8f8;}}</style><h2><p>Υποστηριζόμενες πλατφόρμες λογισμικού:</p></h2><section><p>Παρέχουμε το έτοιμο προς χρήση λογισμικό για αυτές τις 3 πλατφόρμες:</p> <ul><li><b>Arduino</b>: Εάν διαθέτετε CPU Arduino, χρησιμοποιήστε το έτοιμο προς χρήση λογισμικό που είναι διαθέσιμο στο github.com στη διεύθυνση <a href='https://github.com/aqicn/gaia-a08-arduino' target=_github>aqicn/gaia-a08-arduino</a>. <li> Python: Χρησιμοποιήστε το απόσπασμα κώδικα παρακάτω <li> Γραμμή εντολών (CURL): Χρησιμοποιήστε το απόσπασμα κώδικα παρακάτω</ul> <p>Εάν δεν έχετε σταθμό παρακολούθησης και θέλετε να αποκτήσετε έναν, ελέγξτε τους σταθμούς παρακολούθησης ποιότητας αέρα <a href='/gaia/el/'>GAIA</a>.</p> <p>Εάν προτιμάτε έναν σταθμό DIY, ελέγξτε το <a href='/gaia/a08/el/'>GAIA A08</a>.</p> </section><center><br>-<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" version="1" viewBox="0 0 26 26" enable-background="new 0 0 26 26"><path d="M 15.65625 -0.03125 C 14.280846 -0.03760636 12.828752 0.09254274 11.3125 0.40625 C 8.28651 1.0323169 5.7746616 2.1709106 3.96875 3.59375 C 2.3885774 4.8387345 1.3097647 6.3321654 1.0625 7.96875 A 1.0001 1.0001 0 0 0 1 8.40625 C 1 8.4709766 0.99753847 8.5296394 1 8.59375 C 0.99939321 8.6245955 1 8.6565744 1 8.6875 C 1.0067678 8.8049913 1.0164368 8.9159604 1.03125 9.03125 C 1.0536237 9.2185949 1.1014372 9.4156735 1.15625 9.59375 C 1.4590854 10.826485 2.2046296 11.91918 3.21875 12.78125 C 4.0779092 13.511593 5.1369309 14.083861 6.3125 14.53125 A 1.0001 1.0001 0 0 0 6.53125 14.9375 C 8.1339345 16.910035 12.101162 19.118434 18.1875 18.59375 A 1.0043849 1.0043849 0 0 0 18 16.59375 C 14.906411 16.860439 12.500325 16.269357 10.78125 15.5 C 14.30154 15.772761 18.245209 15.070028 21.71875 12.96875 A 1.0021949 1.0021949 0 1 0 20.6875 11.25 C 16.887924 13.548509 12.317006 14.000584 8.78125 13.21875 C 8.6725971 13.194724 8.5753958 13.151278 8.46875 13.125 C 10.108287 13.189898 11.88322 13.060799 13.6875 12.6875 C 16.718701 12.060355 19.36029 10.886006 21.21875 9.4375 C 23.067114 7.9968631 24.272087 6.1533076 23.875 4.21875 C 23.8732 4.20861 23.8769 4.197602 23.875 4.1875 C 23.513143 2.2541955 21.685558 1.0369822 19.4375 0.4375 C 18.307598 0.13619269 17.031654 -0.02489364 15.65625 -0.03125 z M 15.65625 1.96875 C 16.883971 1.97489 18.004902 2.1263073 18.9375 2.375 C 20.802695 2.8723854 21.754612 3.7133252 21.90625 4.5625 A 1.0001 1.0001 0 0 0 21.9375 4.625 C 22.12047 5.4788616 21.54154 6.6735055 20 7.875 C 18.45846 9.0764945 16.081299 10.145895 13.3125 10.71875 C 10.546306 11.291066 7.7660826 11.269646 5.8125 10.78125 C 4.8357087 10.537052 4.0847823 10.157122 3.625 9.78125 C 3.3682882 9.5713881 3.1893221 9.3858538 3.09375 9.1875 C 3.0413411 8.9743851 3.0082478 8.7545393 3 8.53125 C 3.0633474 7.4789308 3.7648202 6.2771492 5.1875 5.15625 C 6.6815884 3.9790894 8.91349 2.9489331 11.6875 2.375 C 13.071248 2.0887073 14.428529 1.9626064 15.65625 1.96875 z M 15.96875 3.65625 C 14.93792 3.617106 13.843984 3.69192 12.71875 3.90625 A 1.0001 1.0001 0 0 0 12.6875 3.9375 C 9.8940815 4.582135 7.6159262 5.8506824 6.5625 7.5625 A 1.0001 1.0001 0 1 0 8.25 8.625 C 8.7942179 7.740646 10.701734 6.434394 13.09375 5.875 C 13.10453 5.87295 13.11421 5.87702 13.125 5.875 C 15.064267 5.5112859 17.031887 5.6468794 18.03125 6.03125 A 1.0040202 1.0040202 0 0 0 18.75 4.15625 C 17.952461 3.8495042 16.99958 3.6953943 15.96875 3.65625 z M 9.15625 17.59375 A 1.0001 1.0001 0 0 0 8.5625 19.25 C 8.5625 19.25 11.033033 22.015963 15.53125 21.90625 A 1.0004882 1.0004882 0 1 0 15.46875 19.90625 C 11.766967 19.996537 10.0625 17.9375 10.0625 17.9375 A 1.0001 1.0001 0 0 0 9.15625 17.59375 z M 8.125 20.1875 A 1.0001 1.0001 0 0 0 7.40625 21.65625 C 7.40625 21.65625 8.6869767 23.974979 11.65625 24.09375 A 1.001098 1.001098 0 0 0 11.75 22.09375 C 9.7192733 22.012521 9.1875 20.75 9.1875 20.75 A 1.0001 1.0001 0 0 0 8.21875 20.1875 A 1.0001 1.0001 0 0 0 8.125 20.1875 z M 7.59375 23.0625 A 1.0001 1.0001 0 0 0 7.4375 23.09375 A 1.0001 1.0001 0 0 0 6.9375 23.34375 C 6.9375 23.34375 6.19375 24 5.09375 24 A 1.0001 1.0001 0 1 0 5.09375 26 C 6.99375 26 8.28125 24.84375 8.28125 24.84375 A 1.0001 1.0001 0 0 0 7.59375 23.0625 z" color="#000" ></path></svg>-<br><br></center> <h2><p>Δείγμα κώδικα (python)</p></h2><section><pre><code class='language-python hljs' style='font-size:15px;'>import requests # Sensor parameter sensorReadings = [ {'specie':'pm25', 'value': 393.3}, {'specie':'pm10', 'value': 109.3} ] # Station parameter station = { 'id': "station-001", 'location': { 'latitude': 28.7501, 'longitude': 77.1177 } } # User parameter - get yours from https://aqicn.org/data-platform/token/ userToken = "dummy-token-for-test-purpose-only" # Then Upload the data params = {'station':station,'readings':sensorReadings,'token':userToken} request = requests.post( url = "https://aqicn.org/sensor/upload/", json = params) #print(request.text) data = request.json() if data["status"]!="ok": print("Something went wrong: %s" % data) else: print("Data successfully posted: %s"%data) </code></pre> <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/styles/tomorrow.min.css"> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/highlight.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.7.0/highlightjs-line-numbers.min.js"></script> <script> hljs.initHighlightingOnLoad(); hljs.initLineNumbersOnLoad(); </script> <style> /* for block of numbers */ .hljs-ln-numbers { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; text-align: center; color: #ccc; border-right: 1px solid #eee; width: 32px; vertical-align: top; } .hljs-ln-code { margin-left: 10px; } </style> </section><h2><p>Δείγμα κώδικα (μπούκλα)</p></h2><section><pre><code class='language-python hljs' style='font-size:15px;'>curl -X POST https://aqicn.org/sensor/upload -H 'Content-Type: application/json' --data '{\ "token": "dummy-token-for-test-purpose-only",\ "station": { "id": "station-001" },\ "readings": [{"specie":"pm2.5", "value": 393.3}]\ }'</code></pre> </section><h2><p>Δείγμα κώδικα (arduino)</p></h2><section>Check <a href='https://github.com/aqicn/gaia-a08-arduino' target=_github>github.com/aqicn/gaia-a08-arduino</a> for the full code. <pre><code class='language-python hljs' style='font-size:15px;'>#include &lt;WiFi.h> #include &lt;HTTPClient.h> #include &lt;ArduinoJson.h> #define LATITUDE 28.7501 #define LONGITUDE 77.1177 void upload(float pm25_concentration, float pm10_concentration, const char * token) { static char stationID[32]; uint64_t efuseMac = ESP.getEfuseMac(); uint16_t chip = (uint16_t)(efuseMac >> 32); snprintf(stationID, 32, "station-%x", chip); doc["token"] = token; doc["station"]["id"] = stationID; doc["station"]["location"]["latitude"] = LATITUDE; doc["station"]["location"]["longitude"] = LONGITUDE; doc["readings"][0]["specie"] = "pm25"; doc["readings"][0]["value"] = pm25_concentration; doc["readings"][0]["unit"] = "µg/m3"; doc["readings"][1]["specie"] = "pm10"; doc["readings"][1]["value"] = pm10_concentration; doc["readings"][1]["unit"] = "µg/m3"; static char json_body[1024]; serializeJson(doc, json_body); HTTPClient http; http.begin("https://aqicn.org/sensor/upload"); http.addHeader("Content-Type", "application/json"); int httpResponseCode = http.POST(json_body); if (httpResponseCode > 0) { String response = http.getString(); Serial.println(httpResponseCode); Serial.println(response); } else { Serial.print("Error on sending POST: "); Serial.println(httpResponseCode); } http.end(); }</code></pre> <div style='height:20px;'></div></div></center><div style='background-color:#f8f8f8'><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header5' style='padding:2px;;'>Επιλογές API</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header5',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><table class='ui table compact tiny'> <thead> <tr> <th>Parameter <th>Type <th>Optional/Mandatory <th>Explanations </tr> </thead> <tbody> <tr> <td>token</td> <td>string <td>mandatory</td> <td> <p>Αποκτήστε το δικό σας διακριτικό από το <a href='/data-platform/token/el/' target=_token>aqicn.org/data-platform/token</a>.</p> </td> </tr> <tr class="blue"> <td colspan=4>station</td> </tr> <tr> <td>station.id</td> <td>string <td>mandatory</td> <td> <p>Μοναδικό αναγνωριστικό σταθμού - μπορείτε να επιλέξετε οποιοδήποτε όνομα με μέγιστο 128 χαρακτήρες. <br> Αυτό το όνομα χρησιμοποιείται μόνο εσωτερικά για εσάς. Κανείς άλλος δεν θα δει αυτό το αναγνωριστικό</p> </td> </tr> <tr> <td>station.name</td> <td>string <td>optional</td> <td> <p>Το όνομα του σταθμού - θα μπορούσε να είναι για παράδειγμα το όνομα του κτιρίου σας, το όνομα μιας οδού, το όνομα ενός πανεπιστημιακού τμήματος, ο κωδικός του προσωπικού σας μετεωρολογικού σταθμού. <br> Αυτό το όνομα θα χρησιμοποιηθεί ως επίθημα για τη διεύθυνση URL του σταθμού σας.</p> </td> </tr> <tr> <td>station.latitude</td> <td>float <td>optional</td> <td> <p>Γεωγραφικό μήκος του σταθμού σας</p> </td> </tr> <tr> <td>station.longitude</td> <td>float <td>optional</td> <td> <p>Γεωγραφικό μήκος του σταθμού σας</p> </td> </tr> <tr class="blue"> <td colspan=4>organization</td> </tr> <tr> <td>org.website</td> <td>string <td>optional</td> <td> <p>Εάν έχετε έναν ιστότοπο με περισσότερες πληροφορίες σχετικά με τον σταθμό/αισθητήρα σας, θα προσθέσουμε αυτόν τον σύνδεσμο στον χάρτη μας όταν χρησιμοποιηθεί, δείτε το σταθμό σας</p> </td> </tr> <tr> <td>org.name</td> <td>string <td>optional</td> <td> <p>Εάν καθορίσετε έναν ιστότοπο, αυτό το "όνομα οργανισμού" θα συσχετιστεί με τον ιστότοπο.</p> </td> </tr> <tr class="blue"> <td colspan=4>readings</td> </tr> <tr> <td>readings[*].specie</td> <td>string <td>mandatory</td> <td> <p>Όνομα του ρύπου που αναφέρετε. Για αισθητήρες αερίου, χρησιμοποιήστε: "pm2.5", "pm10", "pm1.0", ... Για αισθητήρα αερίου, χρησιμοποιήστε: "co2", "no2", "o3", ... Για αισθητήρα καιρού, χρήση: "θερμοκρασία", "υγρασία", "πίεση", "ταχύτητα ανέμου", "ριπή ανέμου", "κατεύθυνση ανέμου", .. <br> Μπορείτε πραγματικά να χρησιμοποιήσετε οποιοδήποτε όνομα είδους θέλετε. Όταν ο σταθμός σας επικυρωθεί, τα ονόματα θα κανονικοποιηθούν στο σύστημά μας.</p> </td> </tr> <tr> <td>readings[*].value</td> <td>float <td>mandatory</td> <td> <p>Εάν ο αισθητήρας σας παράγει τιμές κάθε δευτερόλεπτο και ανεβάζετε μόνο κάθε λεπτό, αυτή η τιμή θα πρέπει να είναι ο μέσος όρος όλων των τιμών που διαβάστηκαν το τελευταίο λεπτό.</p> </td> </tr> <tr> <td>readings[*].unit</td> <td>string <td>optional</td> <td> <p>Μονάδα της αξίας. Π.χ. "mg/m3" για αισθητήρα σκόνης, ppb για αισθητήρες αερίου, C για αισθητήρα θερμοκρασίας..</p> <tr> <td>readings[*].time</td> <td>string <td>optional</td> <td> <p>Ημερομηνία και ώρα ανάγνωσης σε μορφή ISO 8601</p> </td> </tr> <tr> <td>readings[*].min</td> <td>float <td>optional</td> <td> <p>Εάν οι τιμές ανάγνωσης βασίζονται στον μέσο όρο πολλών τιμών, τότε αυτό αντιστοιχεί στην ελάχιστη τιμή όλων των τιμών που χρησιμοποιούνται για τον υπολογισμό του μέσου όρου.</p> </td> </tr> <tr> <td>readings[*].max</td> <td>float <td>optional</td> <td> <p>Εάν οι τιμές ανάγνωσης βασίζονται στον μέσο όρο πολλών τιμών, τότε αυτό αντιστοιχεί στη μέγιστη τιμή όλων των τιμών που χρησιμοποιούνται για τον υπολογισμό του μέσου όρου.</p> </td> </tr> <tr> <td>readings[*].median</td> <td>float <td>optional</td> <td> <p>Εάν οι τιμές ανάγνωσης βασίζονται στον μέσο όρο πολλών τιμών, τότε αυτό αντιστοιχεί στη διάμεση τιμή όλων των τιμών που χρησιμοποιούνται για τον υπολογισμό του μέσου όρου.</p> </td> </tr> <tr> <td>readings[*].stddev</td> <td>float <td>optional</td> <td> <p>Εάν οι τιμές ανάγνωσης βασίζονται στον μέσο όρο πολλών τιμών, τότε αυτό αντιστοιχεί στην τυπική απόκλιση όλων των τιμών που χρησιμοποιούνται για τον υπολογισμό του μέσου όρου.</p> </td> </tr> <tr> <td>readings[*].averaging</td> <td>float <td>optional</td> <td> <p>Εάν οι παραπάνω τιμές βασίζονται στον μέσο όρο πολλών τιμών, τότε αυτό αντιστοιχεί στη διάρκεια, σε δευτερόλεπτα, της περιόδου υπολογισμού του μέσου όρου. <br> Για παράδειγμα, χρησιμοποιήστε 60 για ένα λεπτό μέσο όρο δεδομένων και 3600 για ωριαίο μέσο όρο.</p> </td> </tr> </tbody> </table> </p> </section><h2><p>Παράδειγμα 1</p></h2><section><pre><code class='language-json hljs' style='font-size:15px;'>{ "token": "......", "station": { "id": "station-001", "name": "HCPA Santa Cecília", "latitude": 103.37893, "longitude": 43.17108, }, "org": { "website":"https://pacto.upsensor.com/", "name":"Porto Ar Alegre", }, "readings": [ {"time":"2025-03-26T15:12:53+09:00","specie":"pm2.5", "value": 393.3, "unit":"mg/m3", "min":390.3, "max": 402.3, "stddev": 0.332}, {"time":"2025-03-26T15:12:53+09:00","specie":"pm10", "value": 109.3, "unit":"mg/m3"}, {"time":"2025-03-26T15:12:53+09:00","specie":"co2", "value": 459.3, "unit":"ppb"}, {"time":"2025-03-26T15:12:53+09:00","specie":"temp", "value": 26.8, "unit":"C"}, ] }</code></pre> </section><h2><p>Παράδειγμα 2</p></h2><section><pre><code class='language-json hljs' style='font-size:15px;'>{ "token": "......", "station": { "id": "station-001", }, "readings": [ {"specie":"pm2.5", "value": 393.3} ] }</code></pre> <div style='height:20px;'></div></div></center><div style='background-color:#f8f8f8'><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header6' style='padding:2px;;'>Παράδειγμα πλήρους κώδικα</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header6',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><p>Μπορείτε να χρησιμοποιήσετε αυτόν τον κώδικα για συνεχή ανάγνωση από έναν αισθητήρα SDS και για μεταφόρτωση κάθε λεπτό: (διατίθεται επίσης σενάριο από το <a href='https://github.com/aqicn/sds-sensor-reader'>https://github .com/aqicn/sds-sensor-reader</a>).</p> <pre><code class='language-python hljs' style='font-size:15px;'>import requests import random import time import math import json import sys from serial import Serial LOCATION = {'latitude': 28.7501, 'longitude': 77.1177} TOKEN = "dummy-token-for-test-purpose-only" SENSORID = "station-001" USBPORT = "/dev/ttyUSB0" class SensorDataUploader: def __init__(self, station, token): self.token = token self.station = station def send(self,readings): params = {'station':self.station,'readings':readings,'token':self.token} print("Uploading: %s"%json.dumps(params, indent=4)) request = requests.post( url = "https://aqicn.org/sensor/upload/", json = params) data = request.json() if data["status"]!="ok": print("Something went wrong: %s" % data) else: print("Data successfully posted: %s"%data) class Accumulator: def __init__(self, name): self.name = name self.values = [] def add(self,val): self.values.append(val) def count(self): return len(self.values) def reset(self): self.values=[] def min(self): return self.values[0] def max(self): return self.values[len(self.values)-1] def median(self): return self.values[len(self.values)/2] def mean(self): return float(sum(self.values)) / len(self.values) def stddev(self): l = len(self.values) mean = self.mean() return math.sqrt(float(reduce(lambda x, y: x + y, map(lambda x: (x - mean) ** 2, self.values))) / l) def summary(self): self.values.sort() return {"specie":self.name,'value':self.mean(),'min':self.min(),'max':self.max(),'median':self.median(), 'stddev':self.stddev()} class DummyReader: def read( self ): time.sleep(1.1) return {"pm2.5":random.random()*10,"pm10":random.random()*10} class SDS011Reader: def __init__(self, inport): self.serial = Serial(port=inport,baudrate=9600) self.values = [] self.step = 0 def read( self ): # time.sleep(1) # return {"pm2.5":random.random()*100,"pm10":random.random()*100} while self.serial.inWaiting()!=0: v=ord(self.serial.read()) if self.step ==0: if v==170: self.step=1 elif self.step==1: if v==192: self.values = [0,0,0,0,0,0,0] self.step=2 else: self.step=0 elif self.step>8: self.step =0 pm25 = (self.values[0]+self.values[1]*256)/10 pm10 = (self.values[2]+self.values[3]*256)/10 return {"pm2.5":pm25,"pm10":pm10} elif self.step>=2: self.values[self.step-2]=v self.step= self.step+1 return None def readAndUpload(sensor, uploader): try: while True: accumulators = {} startTime = time.time() while time.time() < startTime+60: values = sensor.read() if values==None: continue print("Reading [%2d]: %s"%(int(time.time()-startTime),values)) for specie, value in values.items(): if not (specie in accumulators): accumulators[specie]=Accumulator(specie) accumulators[specie].add(value) readings = [] for specie, accumulator in accumulators.items(): readings.append(accumulator.summary()) if len(readings)>0: uploader.send(readings) else: print("No value read from the sensor...") except KeyboardInterrupt: print "Bye" sys.exit() print("Starting reading sensor "+SENSORID+" on port "+USBPORT) # Station parameter station = {'id':SENSORID, 'location':LOCATION} uploader = SensorDataUploader(station, TOKEN) sensor = SDS011Reader(USBPORT) # sensor = DummyReader() readAndUpload(sensor,uploader) </code></pre></div></div></div><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header2' style='padding:2px;padding:5px 0;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;;'><span>Γνωρίζετε σταθμούς Air Quality στην περιοχή σας;</span></div><div id='h1header3' class='h1sub'><span>γιατί να μην συμμετέχετε στον χάρτη με τον δικό σας σταθμό ποιότητας αέρα;</span></div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header2',.88,{maxfs:45});fitLine('#h1header3',.88,{maxfs:38}); }; </script><div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' ><style> .gaia-fluid-left { float: left; width: 62%; padding: 0; margin: 0; } .gaia-fluid-right { float: right; width: calc(38% - 10px); padding: 0; margin: 0; margin-top: 10px; padding-left: 10px; } @media only screen and (max-width: 800px) { .gaia-fluid-left { width: 100%; box-sizing: border-box; } .gaia-fluid-right { width: 100%; border: none; margin-top: 20px; } } .gaia-product { box-shadow: 0px 0px 3px rgba(0, 0, 0, .20); display: inline-block; margin: 5px; background: #f8f8f8; line-height: 1.2; border: 1px solid #f8f8f8; max-width: 420px; width: 90%; } .gaia-product:hover { border: 1px solid #888; } .ui.btn.primary { cursor: pointer; background-color: rgba(0, 134, 200, .8); color: white; border: none; border-radius: 3px; text-shadow: none; width: 100%; margin: 0 0 20px 0; } </style> <div class='gaia-fluid-left'> <p>Οι οθόνες ποιότητας αέρα GAIA ρυθμίζονται πολύ εύκολα: Χρειάζεστε μόνο ένα σημείο πρόσβασης WIFI και ένα τροφοδοτικό συμβατό με USB.</p> <p>Μόλις συνδεθείτε, τα επίπεδα ατμοσφαιρικής ρύπανσης σε πραγματικό χρόνο είναι άμεσα διαθέσιμα στους χάρτες και μέσω του API.</p> <p>Ο σταθμός διαθέτει ένα αδιάβροχο καλώδιο τροφοδοσίας 10 μέτρων, τροφοδοτικό USB, εξοπλισμό τοποθέτησης και προαιρετικό ηλιακό πάνελ.</p> </div> <div class='gaia-fluid-right'> <center> <a href='/gaia/list/el/'> <div> <img src='/air/view/gaia/images/gaia-series-a12-large-with-map.png' style='width:100%' title='GAIA A12 Air Quality Monitoring Station'> </div> <div class='ui primary btn'> <span>Κάντε κλικ για περισσότερες πληροφορίες</span> </div> </a> </center> </div> <div style="clear: both;"></div></div></div></div><a name="infoaqi"></a><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header4' style='padding:2px;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;'>Σχετικά με τη μέτρηση της ποιότητας του αέρα και της ρύπανσης:</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header4',.88,{maxfs:45}); }; </script><div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' > <center>Σχετικά με τα επίπεδα ποιότητας αέρα<br> <br> <style type="text/css"> #legend-full table.infoaqitable { line-height: 1.5; background-color: white; max-width: 1000px; width: 95%; margin: 0px; border: 1px solid black; cursor: pointer; } #legend-full table.infoaqitable td { padding: 5px; font-size: 15px; text-shadow: none; } #legend-full .aqiwtxt { color: #ffffff; } #legend-full .aqibtxt { color: #000000; } @media only screen and (max-width: 800px) { #legend-full table.infoaqitable { width: 98%; } } @media only screen and (max-width: 800px) { #legend-full table.infoaqitable td { display: block; } #legend-full table.infoaqitable td:nth-child(1) { display: inline-block; font-size: 1.2em; } #legend-full table.infoaqitable td:nth-child(2) { display: inline-block; font-weight: 800; font-size: 1.2em; } } </style> <div id='legend-full' onclick='window.location="/scale/"'> <table class="infoaqitable"> <thead> <tr> <td>- <td >Τιμές του δείκτη ποιότητας αέρα (AQI).<td>Επίπεδα ανησυχίας για την υγεία</td></tr> </thead> <tr style="background-color:#009966;"> <td class='aqiwtxt' nowrap="true">0 - 50</td> <td class='aqiwtxt'>Καλός</td> <td class='aqiwtxt'>Η ποιότητα του αέρα θεωρείται ικανοποιητική και η ατμοσφαιρική ρύπανση παρουσιάζει μικρό ή καθόλου κίνδυνο</td></tr> <tr style="background-color:#ffde33" class='aqibtxt'> <td class='aqibtxt' nowrap="true">51 -100</td> <td class='aqibtxt'>Μέτριος</td> <td class='aqibtxt'>Η ποιότητα του αέρα είναι αποδεκτή. Ωστόσο, για ορισμένους ρύπους μπορεί να υπάρχει μέτρια ανησυχία για την υγεία για ένα πολύ μικρό αριθμό ατόμων που είναι ασυνήθιστα ευαίσθητα στην ατμοσφαιρική ρύπανση.</td></tr> <tr style="background-color:#ff9933;"> <td class='aqibtxt' nowrap="true">101-150</td> <td class='aqibtxt'>Ανθυγιεινό για ευαίσθητες ομάδες</td> <td class='aqibtxt'>Τα μέλη ευαίσθητων ομάδων ενδέχεται να έχουν επιπτώσεις στην υγεία. Το ευρύ κοινό δεν είναι πιθανό να επηρεαστεί.</td></tr> <tr style="background-color:#cc0033;"> <td class='aqiwtxt' nowrap="true">151-200</td> <td class='aqiwtxt'>Ανθυγιεινός</td> <td class='aqiwtxt'>Ο καθένας μπορεί να αρχίσει να αντιμετωπίζει τις επιπτώσεις στην υγεία. τα μέλη ευαίσθητων ομάδων ενδέχεται να έχουν πιο σοβαρές επιπτώσεις στην υγεία</td></tr> <tr style="background-color:#660099;"> <td class='aqiwtxt' nowrap="true">201-300</td> <td class='aqiwtxt'>Πολύ Ανθυγιεινό</td> <td class='aqiwtxt'>Προειδοποιήσεις για την υγεία σε συνθήκες έκτακτης ανάγκης. Όλος ο πληθυσμός είναι πολύ πιθανόν να επηρεαστεί.</td></tr> <tr style="background-color:#7e0023;"> <td class='aqiwtxt' nowrap="true">300+</td> <td class='aqiwtxt'>Επικίνδυνος</td> <td class='aqiwtxt'>Προειδοποίηση για την υγεία: Όλοι μπορεί να έχουν πιο σοβαρές επιπτώσεις στην υγεία</td></tr> </table> </div><br>Για να μάθετε περισσότερα σχετικά με την ποιότητα του αέρα και τη ρύπανση, ανατρέξτε στο <a href='http://en.wikipedia.org/wiki/Air_quality'>θέμα της wikipedia για την ποιότητα του αέρα</a> ή στον <a href='http://www.airnow.gov/index.cfm?action=aqibasics.aqi'>οδηγό airnow για την ποιότητα του αέρα και την υγεία σας</a> .<br><br>Για πολύ χρήσιμες συμβουλές υγείας του γιατρού του Πεκίνου Richard Saint Cyr MD, ανατρέξτε στο ιστολόγιο <a href='http://www.myhealthbeijing.com/'>www.myhealthbeijing.com</a> .<br><br></center></div></div></div> <center> <br> <!-- responsive ad --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-0281575029452656" data-ad-slot="2455076269" data-ad-format="auto"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> <style type='text/css'> .usage-notice { line-height:1.5; max-width:95%; width:1000px; margin-top:10px; padding:5px; font-size: 15px; background-color:#ffffff; text-shadow: 1px 1px 1px white; -webkit-box-shadow: 1px 1px 8px -3px rgba(0,0,0,0.3); } </style> <div class="textshadowwhite usage-notice" style=''> <b>Ειδοποίηση χρήσης</b>: Όλα τα δεδομένα για την ποιότητα του αέρα δεν έχουν εγκριθεί κατά τη στιγμή της δημοσίευσης και, λόγω της διασφάλισης της ποιότητας, τα δεδομένα αυτά μπορούν να τροποποιηθούν χωρίς προειδοποίηση ανά πάσα στιγμή. Το έργο <a href='https://aqicn.org'> Παγκόσμιο Δείκτη Ποιότητας του Αερίου </a> έχει ασκήσει όλες τις εύλογες δεξιότητες και φροντίδα κατά την κατάρτιση του περιεχομένου αυτών των πληροφοριών και σε καμία περίπτωση το <a href='https://aqicn.org'> Ομάδα Παγκόσμιας Ποιότητας Αέριας Ποιότητας </a> ή οι αντιπρόσωποί της είναι υπεύθυνοι για συμβόλαιο, αδικοπραξία ή άλλως για τυχόν απώλειες, τραυματισμούς ή ζημίες που προκύπτουν άμεσα ή έμμεσα από την παροχή αυτών των δεδομένων.</div> <br> <br> <br> </center> <!-- The floating-footer-marker is used to detect screen height --> <div id="fixed-footer-marker" class="locked"></div> <!-- Place holder for the floating footer --> <div id="floating-footer" class="footer-overlay floating-footer-overlay footer"> </div> <div id="fixed-footer" class="footer"> <div id="footer-overlay" class="footer-overlay"></div> <br> <br> <center> <div id='fixed-footer-menu-buttons-with-text' style='max-width:80%;margin-bottom:20px;display:none;'> <a href='javascript:go2home();' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-home'></div>Home</div></a> <a href='/here/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-geofencing'></div>Here</div></a> <a href='/map/world/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-globe'></div>Map</div></a> <a href='/mask/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-dustmask'></div>Get a mask!</div></a> <a href='/faq/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-faq'></div>Faq</div></a> <a href='/city/all/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-search'></div>Search</div></a> <a href='/contact/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-talk'></div>Contact</div></a> <a href='/links/el/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-link'></div>Links</div></a> </div> <div class='footercolumnout'> <div class='footercolumn1 footercolumn'> <h3>Σχετικά με αυτό το έργο</h3> <br> <li><a href='/contact/el/'>Επικοινωνήστε με την ομάδα έργου World Air Quality Index</a></li> <li><a href='/media/el/'>Press And Media Kit</a></li> <br> <h3><a href='/research/el/'>έρευνα για την ποιότητα του αέρα</a></h3> <br> <li><a href='/faq/el/'>Γνωσιακή βάση και άρθρα για την ποιότητα του αέρα</a></li> <li><a href='/research/el/'>Πειραματισμός Ποιότητας Αέρα</a></li> <li><a href='/sensor/el/'>Ανάλυση αισθητήρων ποιότητας αέρα</a></li> <br> <h3><a href='/faq/el/'>Συχνές Ερωτήσεις</a></h3> <br> <li><a href='/sources/el/'>Πηγή δεδομένων ποιότητας αέρα</a></li> <li><a href='/faq/2015-03-15/air-quality-nowcast-a-beginners-guide/el/'>Υπολογισμός Δείκτη Ποιότητας Αέρα</a></li> <li><a href='/forecast/el/'>Πρόβλεψη Ποιότητας Αέρα</a></li> <li><a href='/products/el/'>Προϊόντα ποιότητας αέρα (μάσκες, οθόνες…)</a></li> <li><a href='/api/el/'>API (Διασύνδεση προγραμματισμού εφαρμογών)</a></li> <li><a href='/data-platform/el/'>Πλατφόρμα ιστορικών δεδομένων</a></li> </div> <div class='footercolumn2 footercolumn'> <h3>Credits</h3> <br> <li><a href='/sources/el/'>Όλες οι EPA στον κόσμο για την εξαιρετική δουλειά τους στη διατήρηση, τη μέτρηση και την παροχή πληροφοριών για την ποιότητα του αέρα στους πολίτες του κόσμου</a></li> <li><a href='http://www.maxmind.com' target=_>Αυτό το προϊόν περιλαμβάνει δεδομένα GeoLite2 που δημιουργήθηκαν από τη MaxMind, διαθέσιμα από το maxmind.com.</a> <li><a href='http://geonames.org' target=_>Αυτό το προϊόν περιλαμβάνει πληροφορίες πόλης GeoNames, που διατίθενται από το geonames.org.</a> <li><a href="http://openweathermap.org/" target="__s">Ανοίξτε τον χάρτη καιρού, σε συνδυασμό με τον αλγόριθμο βελτίωσης qweather™</a> <li><a href='http://wxqa.com' target="__s">Πρόγραμμα Πολίτης Παρατηρητής Καιρού</a> via <a href='https://cwop.waqi.info' target="__s">cwop.waqi.info</a> <li><a href="http://atmosphere.copernicus.eu/" target="__s">Περιέχει τροποποιημένες Πληροφορίες Υπηρεσίας Παρακολούθησης Ατμόσφαιρας Copernicus</a> <li><a href="https://www.flaticon.com/" target="__s" title="Flaticon">Μερικά από τα εικονίδια που έφτιαξε η Freepik από το www.flaticon.com</a> <li><a href="https://locationiq.com/" target="__s" title="location IQ">Αντίστροφη γεωκωδικοποίηση από locationiq.com</a> <li><a href="https://www.openstreetmap.org/copyright" target="__s" title="Open Street Map">Βάση χάρτη και δεδομένων από το OpenStreetMap.</a> </div> <div class='footercolumn3 footercolumn'> <center> &copy; 2008-2025 <br> <a href='https://waqi.info'> <span>Το έργο World Air Quality Index Project</span> </a> <br> <br> <img src='https://waqi.info/icons/logo.png?_=1742969573' class='footer-logo' alt='the World Air Quality Index project logo' border=0 height=100> &nbsp; &nbsp; <img class='async-img' data-src='https://aqicn.org/images/MadeInBJ.png?_=1742969573' class='madeinbjlogo' alt='made in 北京' border=0> <br> <br> </center> </div> </div> </center> <div style='clear:both'></div> <div style='clear:both;'></div> <center> <div id='xatzcaqd'> </center> <br> <div id='mailing-list-footer'> <style type="text/css"> #mailing-list-footer .mailing-list-subscription { text-shadow: #000 1px 1px 1px; font-size: 15px; color: white; } </style> <script>var i18nTexts=(i18nTexts||[]);i18nTexts.push({"wa.KqlOlZrllRNJ+7u88XlbL2RQFwo=":"\u03a9\u03c7! \u039a\u03ac\u03c4\u03b9 \u03c0\u03ae\u03b3\u03b5 \u03c3\u03c4\u03c1\u03b1\u03b2\u03ac. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1.","wa.ds6QyCdIOHG4hhIEHD2rFqI\/WwI=":"\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03b7 \u03b4\u03c9\u03c1\u03b5\u03ac\u03bd \u03bc\u03b7\u03bd\u03b9\u03b1\u03af\u03b1 \u03bb\u03af\u03c3\u03c4\u03b1 \u03b1\u03bb\u03bb\u03b7\u03bb\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1\u03c2 \u03bc\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03cc\u03c4\u03b1\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u03bd\u03ad\u03b1 \u03ac\u03c1\u03b8\u03c1\u03b1.","wa.Xi+TKw0nK3I5533XVrPPC2U4EGA=":"\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b7\u03bb\u03b5\u03ba\u03c4\u03c1\u03bf\u03bd\u03b9\u03ba\u03bf\u03cd \u03c3\u03bf\u03c5 \u03c4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b5\u03af\u03bf\u03c5","wa.P6QFTyFPD4Bj2PtEU75l1GDj4ww=":"\u03c5\u03c0\u03bf\u03b2\u03ac\u03bb\u03bb\u03bf\u03c5\u03bd","wa.FoXcvD6sGbwj\/zOhqhL39XuXQsA=":"\u03a0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 email \u03c3\u03b1\u03c2"})</script><script src='/webapp/dist/mailing-dyn.b37d52498ecc6e0dde16.js?_=1737642178' type='text/javascript'></script> </div> <center style='clear:both;'> <br><small>This page has been generated on Wednesday, Mar 26th 2025, 14:12 pm CST from jp2n</small><br> <small><span id='gentime'></span></small> <br> <br> </center> <br> <br> </div> <div id='settingsdiv-outer'> <div id='settingsdiv'> <div onclick='settingsMenu.close()'> <svg height="24px" viewBox="0 0 512 512" width="24px" style='float:right;fill:white;'> <path d="M74.966,437.013c-99.97-99.97-99.97-262.065,0-362.037c100.002-99.97,262.066-99.97,362.067,0 c99.971,99.971,99.971,262.067,0,362.037C337.032,536.998,174.968,536.998,74.966,437.013z M391.782,120.227 c-75.001-74.985-196.564-74.985-271.534,0c-75.001,74.985-75.001,196.55,0,271.535c74.97,74.986,196.533,74.986,271.534,0 C466.754,316.775,466.754,195.212,391.782,120.227z M188.124,369.137l-45.251-45.266l67.876-67.877l-67.876-67.876l45.251-45.267 L256,210.743l67.877-67.892l45.25,45.267l-67.876,67.876l67.876,67.877l-45.25,45.266L256,301.245L188.124,369.137z" /> </svg> <h2>Settings</h2> </div> <br> <center> <div id='settings-lang'> Language Settings:<br> <div class='sprite-isprt-web-gb flag'></div> <div class='sprite-isprt-web-cn flag'></div> <div class='sprite-isprt-web-jp flag'></div> <div class='sprite-isprt-web-kr flag'></div> <div class='sprite-isprt-web-pl flag'></div> <br> <select onchange='location.href = this.value'> <option value='https://aqicn.org/data-feed/' >English</option><option value='https://aqicn.org/data-feed/cn/' >简体中文 - Chinese</option><option value='https://aqicn.org/data-feed/jp/' >日本 - Japanese</option><option value='https://aqicn.org/data-feed/es/' >español - Spanish</option><option value='https://aqicn.org/data-feed/kr/' >한국의 - Korean</option><option value='https://aqicn.org/data-feed/ru/' >русский - Russian</option><option value='https://aqicn.org/data-feed/hk/' >繁體中文 - Traditional Chinese</option><option value='https://aqicn.org/data-feed/fr/' >Francais - French</option><option value='https://aqicn.org/data-feed/pl/' >Polski - Polish</option><option value='https://aqicn.org/data-feed/de/' >Deutsch - German</option><option value='https://aqicn.org/data-feed/pt/' >Português - Portuguese</option><option value='https://aqicn.org/data-feed/vn/' >Tiếng Việt - Vietnamese</option><option value='https://aqicn.org/data-feed/it/' >Italiano - Italian</option><option value='https://aqicn.org/data-feed/id/' >bahasa Indonesia - Indonesian</option><option value='https://aqicn.org/data-feed/nl/' >Nederlands - Dutch</option><option value='https://aqicn.org/data-feed/fa/' >فارسی - Persian</option><option value='https://aqicn.org/data-feed/th/' >ภาษาไทย - Thai</option><option value='https://aqicn.org/data-feed/hu/' >Magyar - Hungarian</option><option value='https://aqicn.org/data-feed/el/' selected>Ελληνικά - Greek</option><option value='https://aqicn.org/data-feed/ro/' >Română - Romanian</option><option value='https://aqicn.org/data-feed/bg/' >български - Bulgarian</option><option value='https://aqicn.org/data-feed/ur/' >اردو - Urdu</option><option value='https://aqicn.org/data-feed/hi/' >हिंदी - Hindi</option><option value='https://aqicn.org/data-feed/ar/' >العربية - Arabic</option><option value='https://aqicn.org/data-feed/sr/' >Српски - Serbian</option><option value='https://aqicn.org/data-feed/bn/' >বাংলা - Bangla</option><option value='https://aqicn.org/data-feed/bs/' >босански - Bosnian</option><option value='https://aqicn.org/data-feed/hr/' >hrvatski - Croatian</option><option value='https://aqicn.org/data-feed/tr/' >Türkçe - Turkish</option><option value='https://aqicn.org/data-feed/uk/' >українська - Ukrainian</option><option value='https://aqicn.org/data-feed/cs/' >čeština - Czech</option><option value='https://aqicn.org/data-feed/be/' >беларускі - Belarusian</option><option value='https://aqicn.org/data-feed/km/' >ខ្មែរ - Khmer</option><option value='https://aqicn.org/data-feed/lo/' >ລາວ - Lao</option></select> </div> <br> <table> <tr> <td> <center> <i>Temperature unit:</i><br> <span style='font-size:18px'> <span style='display:;' id='settings-temp-label-on'>Celcius</span> <span style='display:none;' id='settings-temp-label-off'>Fahrenheit</span> </span> </center> </td> <td> <div class="onoffswitch" onclick='settingsMenu.click("temp")'> <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="settings-temp" checked> <label class="onoffswitch-label" for="myonoffswitch"> <span class="onoffswitch-inner"></span> <span class="onoffswitch-switch"></span> </label> </div> </table> </center> <br> </div> <div style='display:none;height:0px;' id='settingsdiv-arrow'><div style='width: 0; height: 0; border: 7px solid transparent;top:0px;border-top: 7px solid #fff;position:relative;;margin-left:100px;'></div></div> </div> <link rel='stylesheet' type='text/css' href='https://aqicn.org/air-cache/generic/scripts/dist/navmenu.css?_=20250118.191236' /><script async src='https://aqicn.org/air-cache/generic/scripts/dist/navmenu.js?_=20250121.194619' type='text/javascript'></script> <script type="text/javascript"> fitLine(".link",.9); </script> <script type="text/javascript"> function initTime() { if (isMobileUA) return; function setTimeText() { var minutes = new Date().getMinutes(); var hours = new Date().getHours(); var time = ( hours < 10 ? "0" : "" ) + hours; time += ":"+( minutes < 10 ? "0" : "" ) + minutes; var ot = document.getElementById("ClockTime"); if (ot) ot.innerHTML = time; } setInterval( function() { setTimeText() }, 1000*60*15 ); setTimeText(); }; aqi18n.register('aqi-implication-0-50',"\u0397 \u03c0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03ad\u03c1\u03b1 \u03b8\u03b5\u03c9\u03c1\u03b5\u03af\u03c4\u03b1\u03b9 \u03b9\u03ba\u03b1\u03bd\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03ae \u03ba\u03b1\u03b9 \u03b7 \u03b1\u03c4\u03bc\u03bf\u03c3\u03c6\u03b1\u03b9\u03c1\u03b9\u03ba\u03ae \u03c1\u03cd\u03c0\u03b1\u03bd\u03c3\u03b7 \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b9\u03ba\u03c1\u03cc \u03ae \u03ba\u03b1\u03b8\u03cc\u03bb\u03bf\u03c5 \u03ba\u03af\u03bd\u03b4\u03c5\u03bd\u03bf");aqi18n.register('aqi-level-0-50',"\u039a\u03b1\u03bb\u03cc\u03c2");aqi18n.register('aqi-implication-50-100',"\u0397 \u03c0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03ad\u03c1\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03bf\u03b4\u03b5\u03ba\u03c4\u03ae. \u03a9\u03c3\u03c4\u03cc\u03c3\u03bf, \u03b3\u03b9\u03b1 \u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2 \u03c1\u03cd\u03c0\u03bf\u03c5\u03c2 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03bc\u03ad\u03c4\u03c1\u03b9\u03b1 \u03b1\u03bd\u03b7\u03c3\u03c5\u03c7\u03af\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1 \u03b3\u03b9\u03b1 \u03ad\u03bd\u03b1 \u03c0\u03bf\u03bb\u03cd \u03bc\u03b9\u03ba\u03c1\u03cc \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03b1\u03c4\u03cc\u03bc\u03c9\u03bd \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c3\u03c5\u03bd\u03ae\u03b8\u03b9\u03c3\u03c4\u03b1 \u03b5\u03c5\u03b1\u03af\u03c3\u03b8\u03b7\u03c4\u03b1 \u03c3\u03c4\u03b7\u03bd \u03b1\u03c4\u03bc\u03bf\u03c3\u03c6\u03b1\u03b9\u03c1\u03b9\u03ba\u03ae \u03c1\u03cd\u03c0\u03b1\u03bd\u03c3\u03b7.");aqi18n.register('aqi-level-50-100',"\u039c\u03ad\u03c4\u03c1\u03b9\u03bf\u03c2");aqi18n.register('aqi-implication-100-150',"\u03a4\u03b1 \u03bc\u03ad\u03bb\u03b7 \u03b5\u03c5\u03b1\u03af\u03c3\u03b8\u03b7\u03c4\u03c9\u03bd \u03bf\u03bc\u03ac\u03b4\u03c9\u03bd \u03b5\u03bd\u03b4\u03ad\u03c7\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03b5\u03c0\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1. \u03a4\u03bf \u03b5\u03c5\u03c1\u03cd \u03ba\u03bf\u03b9\u03bd\u03cc \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03b9\u03b8\u03b1\u03bd\u03cc \u03bd\u03b1 \u03b5\u03c0\u03b7\u03c1\u03b5\u03b1\u03c3\u03c4\u03b5\u03af.");aqi18n.register('aqi-level-100-150',"\u0391\u03bd\u03b8\u03c5\u03b3\u03b9\u03b5\u03b9\u03bd\u03cc \u03b3\u03b9\u03b1 \u03b5\u03c5\u03b1\u03af\u03c3\u03b8\u03b7\u03c4\u03b5\u03c2 \u03bf\u03bc\u03ac\u03b4\u03b5\u03c2");aqi18n.register('aqi-level-100-150-html',"<div style='line-height:1.1'>\u0391\u03bd\u03b8\u03c5\u03b3\u03b9\u03b5\u03b9\u03bd\u03cc<br><span style='font-size:16px;'>\u03b3\u03b9\u03b1 \u03b5\u03c5\u03b1\u03af\u03c3\u03b8\u03b7\u03c4\u03b5\u03c2 \u03bf\u03bc\u03ac\u03b4\u03b5\u03c2<\/span><\/div>");aqi18n.register('aqi-implication-150-200',"\u039f \u03ba\u03b1\u03b8\u03ad\u03bd\u03b1\u03c2 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03c1\u03c7\u03af\u03c3\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03bc\u03b5\u03c4\u03c9\u03c0\u03af\u03b6\u03b5\u03b9 \u03c4\u03b9\u03c2 \u03b5\u03c0\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1. \u03c4\u03b1 \u03bc\u03ad\u03bb\u03b7 \u03b5\u03c5\u03b1\u03af\u03c3\u03b8\u03b7\u03c4\u03c9\u03bd \u03bf\u03bc\u03ac\u03b4\u03c9\u03bd \u03b5\u03bd\u03b4\u03ad\u03c7\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03b9\u03bf \u03c3\u03bf\u03b2\u03b1\u03c1\u03ad\u03c2 \u03b5\u03c0\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1");aqi18n.register('aqi-level-150-200',"\u0391\u03bd\u03b8\u03c5\u03b3\u03b9\u03b5\u03b9\u03bd\u03cc\u03c2");aqi18n.register('aqi-level-150-200-html',"<div style='font-size:66%'>\u0391\u03bd\u03b8\u03c5\u03b3\u03b9\u03b5\u03b9\u03bd\u03cc\u03c2<\/div>");aqi18n.register('aqi-implication-200-300',"\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1 \u03c3\u03b5 \u03c3\u03c5\u03bd\u03b8\u03ae\u03ba\u03b5\u03c2 \u03ad\u03ba\u03c4\u03b1\u03ba\u03c4\u03b7\u03c2 \u03b1\u03bd\u03ac\u03b3\u03ba\u03b7\u03c2. \u038c\u03bb\u03bf\u03c2 \u03bf \u03c0\u03bb\u03b7\u03b8\u03c5\u03c3\u03bc\u03cc\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bf\u03bb\u03cd \u03c0\u03b9\u03b8\u03b1\u03bd\u03cc\u03bd \u03bd\u03b1 \u03b5\u03c0\u03b7\u03c1\u03b5\u03b1\u03c3\u03c4\u03b5\u03af.");aqi18n.register('aqi-level-200-300',"\u03a0\u03bf\u03bb\u03cd \u0391\u03bd\u03b8\u03c5\u03b3\u03b9\u03b5\u03b9\u03bd\u03cc");aqi18n.register('aqi-level-200-300-html',"<div style='line-height:1.1'><span style='font-size:16px;'>\u03a0\u03bf\u03bb\u03cd<\/span><br>\u0391\u03bd\u03b8\u03c5\u03b3\u03b9\u03b5\u03b9\u03bd\u03cc<\/div>");aqi18n.register('aqi-implication-300-500',"\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1: \u038c\u03bb\u03bf\u03b9 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03b9\u03bf \u03c3\u03bf\u03b2\u03b1\u03c1\u03ad\u03c2 \u03b5\u03c0\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c5\u03b3\u03b5\u03af\u03b1");aqi18n.register('aqi-level-300-500',"\u0395\u03c0\u03b9\u03ba\u03af\u03bd\u03b4\u03c5\u03bd\u03bf\u03c2");aqi18n.register('aqi-level-300-500-html',"<div style='font-size:66%'>\u0395\u03c0\u03b9\u03ba\u03af\u03bd\u03b4\u03c5\u03bd\u03bf\u03c2<\/div>");aqi18n.register('updated',"Updated"); </script> <script type="text/javascript"> ["preInitPage","initTime"].forEach(function(f){ if (window[f]) { try { window[f](); } catch (e) { loge("error in "+f,e); }} }); </script> <script src='/jscripts/moment/bundle.min.js?_=20200103.150752&type=script'></script> <script src='https://aqicn.org/air-cache/tingle/0.15.1/tingle.min.js?_=20191109.130307' type='text/javascript'></script> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { ["Page","HeadSearch","Search","Notify","Geolocate","AqiForecast","Download","Sharing","Page2"].forEach(function(f){ f = "init"+f; if (window[f]) { try { window[f](); } catch (e) { loge ("error in "+f,e,e.stack);}; } }); if (typeof ntfOnInit != "undefined") ntfOnInit(); }); </script> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-28507883-1', 'auto'); ga('send', 'pageview'); try { var images = document.querySelectorAll('.async-img'); var config = { rootMargin: '50px 0px', threshold: 0.01}; function preloadImage(img) { img.src = img.dataset.src; } function onIntersection(entries) { entries.forEach(function(entry) { if (entry.intersectionRatio > 0) { observer.unobserve(entry.target); preloadImage(entry.target); } }) } var observer = new IntersectionObserver(onIntersection, config); images.forEach(function(image){observer.observe(image)}); } catch (e) {} </script> <!-- Generated on jp2n on 2025-03-26T15:12:53+09:00 --> </body> </html> </section>

Pages: 1 2 3 4 5 6 7 8 9 10