CINXE.COM
Skrypty API i próbek do przesyłania danych
<!doctype html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" 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>Skrypty API i próbek do przesyłania danych</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="Wskaźniki jakości powietrza w czasie rzeczywistym dla ponad 100 krajów." 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, Chiny Air Pollution, Asia Air Pollution, World Air Pollution, Dane historyczne dotyczące jakości powietrza., Ranking AQI, AQI Windows widget, AQI android widget, PM10 respirable particulate matter, PM2.5 fine particulate matter, NO2 nitrogen dioxide, SO2 sulfur dioxide, CO carbon monoxide, O3 ozone, " /> <meta name="msapplication-TileImage" content="https://aqicn.org/images/iOS/ico_114.png"/> <meta property="og:locale" content="pl_PL"/><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="Jak bardzo jest dzisiaj zanieczyszczone powietrze? Sprawdź mapę AQI generowaną w czasie rzeczywistym dla ponad 100 krajów."><meta property="twitter:description" content="Jak bardzo jest dzisiaj zanieczyszczone powietrze? Sprawdź mapę AQI generowaną w czasie rzeczywistym dla ponad 100 krajów." /><meta property="og:title" content="Skrypty API i próbek do przesyłania danych" /><meta property="twitter:title" content="Skrypty API i próbek do przesyłania danych" /> <!--[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%5BWiyZGWpeJzuBTySXYnukYh1%3ABzuXGoh4Mh%3E%3E").split('').forEach(function(c){ u += String.fromCharCode(c.charCodeAt(0)-1); });return u; })() } function getLang() { return "pl"; }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/pl/"> <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/pl/'> <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/pl/'; ; 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='Strona'></div><span class='menubar-title'>Strona</span></div></a></div><div class='menubar-cell'><a href='/here/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-geofencing menubar-icon' title='Here'></div><span class='menubar-title'>Here</span></div></a></div><div class='menubar-cell'><a href='/map/world/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-globe menubar-icon' title='Mapa'></div><span class='menubar-title'>Mapa</span></div></a></div><div class='menubar-cell'><a href='/mask/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-dustmask menubar-icon' title='Pobierz maskę!'></div><span class='menubar-title'>Pobierz maskę!</span></div></a></div><div class='menubar-cell'><a href='/faq/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-faq menubar-icon' title='Blog'></div><span class='menubar-title'>Blog</span></div></a></div><div class='menubar-cell'><a href='/city/all/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-search menubar-icon' title='Linki'></div><span class='menubar-title'>Linki</span></div></a></div><div class='menubar-cell'><a href='/contact/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-talk menubar-icon' title='Skontaktuj'></div><span class='menubar-title'>Skontaktuj</span></div></a></div><div class='menubar-cell'><a href='/links/pl/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-link menubar-icon' title='Szukaj'></div><span class='menubar-title'>Szukaj</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;;;'>Skrypty API i próbek do przesyłania danych</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>Pierwszym krokiem jest uzyskanie tokena ze <a href='https://aqicn.org/data-platform/token/#/' target=_token>strony platformy danych</a>.</p> <p>Gdy już posiadasz własny token, możesz użyć poniższego skryptu, aby przesłać swoje dane. Po przesłaniu danych pierwszej stacji przejdź na stronę <a href='/data-feed/verification/'>aqicn.org/data-feed/verification/</a>, aby skonfigurować stacje i zweryfikować przesłane dane.</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>Obsługiwane platformy oprogramowania:</p></h2><section><p>Dostarczamy gotowe oprogramowanie na 3 platformy:</p> <ul><li><b>Arduino</b>: Jeśli masz procesor Arduino, skorzystaj z gotowego do użycia oprogramowania dostępnego na github.com pod adresem <a href='https://github.com/aqicn/gaia-a08-arduino' target=_github>aqicn/gaia-a08-arduino</a>. <li> Python: Użyj poniższego fragmentu kodu <li> Wiersz poleceń (CURL): Użyj poniższego fragmentu kodu</ul> <p>Jeśli nie masz stacji monitorującej, a chciałbyś ją kupić, sprawdź nasze stacje monitorujące jakość powietrza <a href='/gaia/pl/'>GAIA</a>.</p> <p>Jeśli wolisz stację typu „zrób to sam”, sprawdź <a href='/gaia/a08/pl/'>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>Przykładowy kod (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>Przykładowy kod (curl)</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>Przykładowy kod (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 <WiFi.h> #include <HTTPClient.h> #include <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;;'>Opcje interfejsu 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>Zdobądź własny token z <a href='/data-platform/token/pl/' 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>Unikalny identyfikator stacji - możesz wybrać dowolną nazwę zawierającą maksymalnie 128 znaków. <br> Ta nazwa będzie używana wyłącznie wewnętrznie w Twoim przypadku. Nikt inny nie zobaczy tego identyfikatora</p> </td> </tr> <tr> <td>station.name</td> <td>string <td>optional</td> <td> <p>Nazwa stacji – może to być na przykład nazwa Twojego budynku, nazwa ulicy, nazwa wydziału uniwersyteckiego, kod Twojej osobistej stacji pogodowej. <br> Ta nazwa będzie używana jako przyrostek adresu URL Twojej stacji.</p> </td> </tr> <tr> <td>station.latitude</td> <td>float <td>optional</td> <td> <p>Długość geograficzna Twojej stacji</p> </td> </tr> <tr> <td>station.longitude</td> <td>float <td>optional</td> <td> <p>Długość geograficzna Twojej stacji</p> </td> </tr> <tr class="blue"> <td colspan=4>organization</td> </tr> <tr> <td>org.website</td> <td>string <td>optional</td> <td> <p>Jeśli masz stronę internetową zawierającą więcej informacji o Twojej stacji/czujniku, dodamy ten link na naszej mapie, gdy z niej skorzystasz. Zobacz swoją stację</p> </td> </tr> <tr> <td>org.name</td> <td>string <td>optional</td> <td> <p>Jeśli określisz witrynę internetową, ta „nazwa organizacji” zostanie powiązana z witryną internetową.</p> </td> </tr> <tr class="blue"> <td colspan=4>readings</td> </tr> <tr> <td>readings[*].specie</td> <td>string <td>mandatory</td> <td> <p>Nazwa substancji zanieczyszczającej, którą zgłaszasz. Dla czujników gazu użyj: „pm2,5”, „pm10”, „pm1,0”, ... Dla czujnika gazu użyj: „co2”, „no2”, „o3”, ... Dla czujnika pogodowego, użyj: „temp”, „wilgotność”, „ciśnienie”, „prędkość wiatru”, „podmuch wiatru”, „kierunek wiatru”, .. <br> Właściwie możesz użyć dowolnej nazwy gatunku. Po zatwierdzeniu stacji nazwy zostaną znormalizowane w naszym systemie.</p> </td> </tr> <tr> <td>readings[*].value</td> <td>float <td>mandatory</td> <td> <p>Jeśli Twój czujnik generuje wartości co sekundę, a przesyłasz dane tylko co minutę, wartość ta powinna być średnią wszystkich wartości odczytanych w ciągu ostatniej minuty.</p> </td> </tr> <tr> <td>readings[*].unit</td> <td>string <td>optional</td> <td> <p>Jednostka wartości. Np. „mg/m3” dla czujnika pyłu, ppb dla czujników gazu, C dla czujnika temperatury.</p> <tr> <td>readings[*].time</td> <td>string <td>optional</td> <td> <p>Data i godzina odczytu w formacie ISO 8601</p> </td> </tr> <tr> <td>readings[*].min</td> <td>float <td>optional</td> <td> <p>Jeśli wartości odczytu opierają się na uśrednieniu kilku wartości, wówczas odpowiada to wartości minimalnej wszystkich wartości użytych do uśrednienia.</p> </td> </tr> <tr> <td>readings[*].max</td> <td>float <td>optional</td> <td> <p>Jeśli wartości odczytu opierają się na uśrednieniu kilku wartości, wówczas odpowiada to maksymalnej wartości wszystkich wartości użytych do uśrednienia.</p> </td> </tr> <tr> <td>readings[*].median</td> <td>float <td>optional</td> <td> <p>Jeśli wartości odczytu opierają się na uśrednieniu kilku wartości, wówczas odpowiada to medianie wszystkich wartości użytych do uśrednienia.</p> </td> </tr> <tr> <td>readings[*].stddev</td> <td>float <td>optional</td> <td> <p>Jeżeli wartości odczytu opierają się na uśrednieniu kilku wartości, wówczas odpowiada to odchyleniu standardowemu wszystkich wartości użytych do uśrednienia.</p> </td> </tr> <tr> <td>readings[*].averaging</td> <td>float <td>optional</td> <td> <p>Jeżeli powyższe wartości opierają się na uśrednieniu kilku wartości, wówczas odpowiada to czasowi trwania okresu uśredniania w sekundach. <br> Na przykład użyj 60 dla średnich danych minutowych i 3600 dla średnich godzinowych.</p> </td> </tr> </tbody> </table> </p> </section><h2><p>Przykład 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-29T16:25:50+09:00","specie":"pm2.5", "value": 393.3, "unit":"mg/m3", "min":390.3, "max": 402.3, "stddev": 0.332}, {"time":"2025-03-29T16:25:50+09:00","specie":"pm10", "value": 109.3, "unit":"mg/m3"}, {"time":"2025-03-29T16:25:50+09:00","specie":"co2", "value": 459.3, "unit":"ppb"}, {"time":"2025-03-29T16:25:50+09:00","specie":"temp", "value": 26.8, "unit":"C"}, ] }</code></pre> </section><h2><p>Przykład 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;;'>Kompletny przykład kodu</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header6',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><p>Możesz użyć tego kodu do ciągłego odczytu z czujnika SDS i przesyłania co minutę: (skrypt dostępny również na <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>Czy znasz jakieś stacje pomiaru jakości powietrza w swojej okolicy?</span></div><div id='h1header3' class='h1sub'><span>dlaczego nie wziąć udziału w tworzeniu mapy, zakładając własną stację pomiaru jakości powietrza?</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>Nasze monitory jakości powietrza GAIA są bardzo łatwe w konfiguracji: potrzebujesz jedynie punktu dostępu Wi-Fi i zasilacza kompatybilnego z USB.</p> <p>Po połączeniu poziom zanieczyszczenia powietrza w czasie rzeczywistym jest natychmiast dostępny na mapach i za pośrednictwem interfejsu API.</p> <p>Stacja jest dostarczana z 10-metrowym wodoodpornym kablem zasilającym, zasilaczem USB, elementami montażowymi i opcjonalnym panelem słonecznym.</p> </div> <div class='gaia-fluid-right'> <center> <a href='/gaia/list/pl/'> <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>Kliknij, aby uzyskać więcej informacji</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;;'>O pomiarach jakości powietrza i zanieczyszczeń:</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>O Poziomach Jakości Powietrza<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 >Wartości Indeksu Jakości Powietrza (AQI)<td>Poziomy zagrożenia zdrowia</td></tr> </thead> <tr style="background-color:#009966;"> <td class='aqiwtxt' nowrap="true">0 - 50</td> <td class='aqiwtxt'>Dobra</td> <td class='aqiwtxt'>0-50: Dobra - Jakość powietrza jest uznawana za zadowalającą, a zanieczyszczenie powietrza stanowi niewielkie ryzyko lub jego brak.</td></tr> <tr style="background-color:#ffde33" class='aqibtxt'> <td class='aqibtxt' nowrap="true">51 -100</td> <td class='aqibtxt'>Średnia</td> <td class='aqibtxt'>50-100: Średnia - Jakość powietrza jest dopuszczalna; jednak niektóre zanieczyszczenia mogą być umiarkowanie szkodliwe dla bardzo małej liczby osób, które są niezwykle wrażliwe na zanieczyszczenie powietrza.</td></tr> <tr style="background-color:#ff9933;"> <td class='aqibtxt' nowrap="true">101-150</td> <td class='aqibtxt'>Niezdrowa dla osób wrażliwych</td> <td class='aqibtxt'>100-150: Niezdrowe dla wrażliwych osób - u osób wrażliwych mogą wystąpić negatywne skutki dla zdrowia. Większość populacji może nie odczuwać negatywnych objawów.</td></tr> <tr style="background-color:#cc0033;"> <td class='aqiwtxt' nowrap="true">151-200</td> <td class='aqiwtxt'>Niezdrowa</td> <td class='aqiwtxt'>150-200: Niezdrowe - Każdy może zacząć doświadczać negatywnych skutków zdrowotnych; U osób wrażliwych mogą wystąpić poważniejsze skutki zdrowotne.</td></tr> <tr style="background-color:#660099;"> <td class='aqiwtxt' nowrap="true">201-300</td> <td class='aqiwtxt'>Bardzo niezdrowa</td> <td class='aqiwtxt'>200-300: Bardzo niezdrowe - Ostrzeżenie zdrowotne, poziom alarmowy. Bardzo prawdopodobny negatywny wpływ na całą populację.</td></tr> <tr style="background-color:#7e0023;"> <td class='aqiwtxt' nowrap="true">300+</td> <td class='aqiwtxt'>Zagrożenie dla życia</td> <td class='aqiwtxt'>300 : Niebezpieczny - Alarm Zdrowotny: każdy może doświadczyć poważniejszych skutków zdrowotnych.</td></tr> </table> </div><br>Aby dowiedzieć się więcej na temat jakości powietrza i zanieczyszczenia, sprawdź w wikipedii temat <a href='http://en.wikipedia.org/wiki/Air_quality'>"jakość powietrza"</a> lub nasz poradnik o <a href='http://www.airnow.gov/index.cfm?action=aqibasics.aqi'>jakości powietrza i jego wpływie na Twoje zdrowie</a>.<br><br>Więcej przydatnych informacji zdrowotnych na blogu doktora Richarda Sainta z Pekinu: <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>Uwaga dotycząca użytkowania</b>: Wszystkie dane dotyczące jakości powietrza mogą być nieważne w chwili publikacji, a w celu zapewnienia jakości dane te mogą być w dowolnym momencie zmieniane bez powiadomienia. Projekt World Air Quality Index wykorzystuje wszystkie przydatne umiejętności, dba o rzetelność przy kompilowaniu treści tych informacji, ale w żadnym wypadku zespół projektowy World Air Quality Index lub jego agenci nie są odpowiedzialni za umowę, delikt lub w inny sposób za jakiekolwiek straty, obrażenia lub szkody wynikające bezpośrednio lub pośrednio z dostarczania tych danych.</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>Strona</div></a> <a href='/here/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-geofencing'></div>Here</div></a> <a href='/map/world/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-globe'></div>Mapa</div></a> <a href='/mask/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-dustmask'></div>Pobierz maskę!</div></a> <a href='/faq/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-faq'></div>Blog</div></a> <a href='/city/all/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-search'></div>Linki</div></a> <a href='/contact/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-talk'></div>Skontaktuj</div></a> <a href='/links/pl/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-link'></div>Szukaj</div></a> </div> <div class='footercolumnout'> <div class='footercolumn1 footercolumn'> <h3>O tym projekcie</h3> <br> <li><a href='/contact/pl/'>Kontakt Do Zespołu Projektu świata Wskaźnik Jakości Powietrza</a></li> <li><a href='/media/pl/'>Zestaw Dla Prasy I Mediów</a></li> <br> <h3><a href='/research/pl/'>Badania jakości powietrza</a></h3> <br> <li><a href='/faq/pl/'>Baza Wiedzy I Artykuły Dot. Jakości Powietrza</a></li> <li><a href='/research/pl/'>Eksperymenty z jakością powietrza</a></li> <li><a href='/sensor/pl/'>Analiza Czujników Jakości Powietrza</a></li> <br> <h3><a href='/faq/pl/'>Najczęściej zadawane pytania</a></h3> <br> <li><a href='/sources/pl/'>Źródło danych dot. jakości powietrza</a></li> <li><a href='/faq/2015-03-15/air-quality-nowcast-a-beginners-guide/pl/'>Obliczanie Wskaźnika Jakości Powietrza (AQI)</a></li> <li><a href='/forecast/pl/'>Prognozowanie Jakości Powietrza</a></li> <li><a href='/products/pl/'>Produkty AQI (maski, Wyświetlacze...)</a></li> <li><a href='/api/pl/'>API (interfejs programowania aplikacji)</a></li> <li><a href='/data-platform/pl/'>Platforma danych historycznych</a></li> </div> <div class='footercolumn2 footercolumn'> <h3>Credits</h3> <br> <li><a href='/sources/pl/'>Całej Agencji Ochrony Środowiska na świecie za doskonałą pracę w zakresie utrzymywania, pomiaru i dostarczania obywatelom świata informacji na temat jakości powietrza</a></li> <li><a href='http://www.maxmind.com' target=_>Ten produkt zawiera dane GeoLite2 utworzone przez MaxMind i dostępne na stronie maxmind.com.</a> <li><a href='http://geonames.org' target=_>Ten produkt zawiera informacje o mieście GeoNames dostępne na stronie geonames.org.</a> <li><a href="http://openweathermap.org/" target="__s">Otwarta mapa pogody połączona z algorytmem ulepszania qweather™</a> <li><a href='http://wxqa.com' target="__s">Program Obywatelskich Obserwatorów Pogody</a> via <a href='https://cwop.waqi.info' target="__s">cwop.waqi.info</a> <li><a href="http://atmosphere.copernicus.eu/" target="__s">Zawiera zmodyfikowane informacje dotyczące usługi monitorowania atmosfery programu Copernicus</a> <li><a href="https://www.flaticon.com/" target="__s" title="Flaticon">Niektóre ikony wykonane przez Freepik z www.flaticon.com</a> <li><a href="https://locationiq.com/" target="__s" title="location IQ">Odwrotne geokodowanie przez Locationiq.com</a> <li><a href="https://www.openstreetmap.org/copyright" target="__s" title="Open Street Map">Mapa bazowa i dane z OpenStreetMap.</a> </div> <div class='footercolumn3 footercolumn'> <center> © 2008-2025 <br> <a href='https://waqi.info'> <span>Projekt Światowego Wskaźnika Jakości Powietrza</span> </a> <br> <br> <img src='https://waqi.info/icons/logo.png?_=1743233150' class='footer-logo' alt='the World Air Quality Index project logo' border=0 height=100> <img class='async-img' data-src='https://aqicn.org/images/MadeInBJ.png?_=1743233150' 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=":"Ups! Co\u015b posz\u0142o nie tak. Spr\u00f3buj ponownie p\u00f3\u017aniej.","wa.ds6QyCdIOHG4hhIEHD2rFqI\/WwI=":"Zapisz si\u0119 na nasz\u0105 bezp\u0142atn\u0105 comiesi\u0119czn\u0105 list\u0119 mailingow\u0105 i otrzymuj powiadomienia, gdy b\u0119d\u0105 dost\u0119pne nowe artyku\u0142y.","wa.Xi+TKw0nK3I5533XVrPPC2U4EGA=":"Tw\u00f3j email","wa.P6QFTyFPD4Bj2PtEU75l1GDj4ww=":"sk\u0142ada\u0107","wa.FoXcvD6sGbwj\/zOhqhL39XuXQsA=":"Prosz\u0119 czeka\u0107 podczas rejestracji adresu e-mail"})</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 Saturday, Mar 29th 2025, 15:25 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>Ustawienia</h2> </div> <br> <center> <div id='settings-lang'> Ustawienia Języka:<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/' selected>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/' >Ελληνικά - 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',"Jako\u015b\u0107 powietrza uznawana jest za zadowalaj\u0105c\u0105, a zanieczyszczenie powietrza stwarza niewielkie ryzyko lub nie ma go wcale");aqi18n.register('aqi-level-0-50',"Dobry");aqi18n.register('aqi-implication-50-100',"Jako\u015b\u0107 powietrza jest do zaakceptowania; jednak w przypadku niekt\u00f3rych substancji zanieczyszczaj\u0105cych mo\u017ce istnie\u0107 umiarkowany problem zdrowotny dla bardzo ma\u0142ej liczby ludzi, kt\u00f3rzy s\u0105 niezwykle wra\u017cliwi na zanieczyszczenie powietrza.");aqi18n.register('aqi-level-50-100',"Umiarkowany");aqi18n.register('aqi-implication-100-150',"Cz\u0142onkowie wra\u017cliwych grup mog\u0105 odczuwa\u0107 skutki zdrowotne. Nie wp\u0142ynie to na og\u00f3\u0142 spo\u0142ecze\u0144stwa.");aqi18n.register('aqi-level-100-150',"Niezdrowy dla wra\u017cliwych grup");aqi18n.register('aqi-level-100-150-html',"<div style='font-size:66%'>Niezdrowy dla wra\u017cliwych grup<\/div>");aqi18n.register('aqi-implication-150-200',"Ka\u017cdy mo\u017ce zacz\u0105\u0107 odczuwa\u0107 skutki zdrowotne; cz\u0142onkowie grup wra\u017cliwych mog\u0105 odczuwa\u0107 powa\u017cniejsze skutki zdrowotne");aqi18n.register('aqi-level-150-200',"Niezdrowy");aqi18n.register('aqi-implication-200-300',"Ostrze\u017cenia zdrowotne o stanach zagro\u017cenia. Ca\u0142a populacja jest bardziej nara\u017cona na wp\u0142yw.");aqi18n.register('aqi-level-200-300',"Bardzo niezdrowe");aqi18n.register('aqi-level-200-300-html',"<div style='font-size:80%'>Bardzo niezdrowe<\/div>");aqi18n.register('aqi-implication-300-500',"Alarm zdrowotny: ka\u017cdy mo\u017ce odczuwa\u0107 powa\u017cniejsze skutki zdrowotne");aqi18n.register('aqi-level-300-500',"Niebezpieczny");aqi18n.register('updated',"Zaktualizowano"); </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-29T16:25:50+09:00 --> </body> </html> </section>