├── .gitattributes ├── README_files └── libs │ ├── bootstrap │ └── bootstrap-icons.woff │ ├── quarto-html │ ├── tippy.css │ ├── quarto-syntax-highlighting.css │ ├── anchor.min.js │ ├── popper.min.js │ ├── tippy.umd.min.js │ └── quarto.js │ └── clipboard │ └── clipboard.min.js ├── README.md └── index.html /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README_files/libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aradfarahani/awesome-iran-opendata/HEAD/README_files/libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /README_files/libs/quarto-html/tippy.css: -------------------------------------------------------------------------------- 1 | .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /README_files/libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | font-style: inherit; 59 | } 60 | 61 | code span.at { 62 | color: #657422; 63 | font-style: inherit; 64 | } 65 | 66 | code span.ss { 67 | color: #20794D; 68 | font-style: inherit; 69 | } 70 | 71 | code span.an { 72 | color: #5E5E5E; 73 | font-style: inherit; 74 | } 75 | 76 | code span.fu { 77 | color: #4758AB; 78 | font-style: inherit; 79 | } 80 | 81 | code span.st { 82 | color: #20794D; 83 | font-style: inherit; 84 | } 85 | 86 | code span.cf { 87 | color: #003B4F; 88 | font-weight: bold; 89 | font-style: inherit; 90 | } 91 | 92 | code span.op { 93 | color: #5E5E5E; 94 | font-style: inherit; 95 | } 96 | 97 | code span.er { 98 | color: #AD0000; 99 | font-style: inherit; 100 | } 101 | 102 | code span.bn { 103 | color: #AD0000; 104 | font-style: inherit; 105 | } 106 | 107 | code span.al { 108 | color: #AD0000; 109 | font-style: inherit; 110 | } 111 | 112 | code span.va { 113 | color: #111111; 114 | font-style: inherit; 115 | } 116 | 117 | code span.bu { 118 | font-style: inherit; 119 | } 120 | 121 | code span.ex { 122 | font-style: inherit; 123 | } 124 | 125 | code span.pp { 126 | color: #AD0000; 127 | font-style: inherit; 128 | } 129 | 130 | code span.in { 131 | color: #5E5E5E; 132 | font-style: inherit; 133 | } 134 | 135 | code span.vs { 136 | color: #20794D; 137 | font-style: inherit; 138 | } 139 | 140 | code span.wa { 141 | color: #5E5E5E; 142 | font-style: italic; 143 | } 144 | 145 | code span.do { 146 | color: #5E5E5E; 147 | font-style: italic; 148 | } 149 | 150 | code span.im { 151 | color: #00769E; 152 | font-style: inherit; 153 | } 154 | 155 | code span.ch { 156 | color: #20794D; 157 | font-style: inherit; 158 | } 159 | 160 | code span.dt { 161 | color: #AD0000; 162 | font-style: inherit; 163 | } 164 | 165 | code span.fl { 166 | color: #AD0000; 167 | font-style: inherit; 168 | } 169 | 170 | code span.co { 171 | color: #5E5E5E; 172 | font-style: inherit; 173 | } 174 | 175 | code span.cv { 176 | color: #5E5E5E; 177 | font-style: italic; 178 | } 179 | 180 | code span.cn { 181 | color: #8f5902; 182 | font-style: inherit; 183 | } 184 | 185 | code span.sc { 186 | color: #5E5E5E; 187 | font-style: inherit; 188 | } 189 | 190 | code span.dv { 191 | color: #AD0000; 192 | font-style: inherit; 193 | } 194 | 195 | code span.kw { 196 | color: #003B4F; 197 | font-weight: bold; 198 | font-style: inherit; 199 | } 200 | 201 | .prevent-inlining { 202 | content: ".anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); 9 | // @license-end -------------------------------------------------------------------------------- /README_files/libs/clipboard/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.11 3 | * https://clipboardjs.com/ 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=10&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); 6 | 7 | -------------------------------------------------------------------------------- /README_files/libs/quarto-html/tippy.umd.min.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); 2 | 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | # Awesome Iran open data 5 | 6 | 7 | 8 | ![Open Source](https://img.shields.io/badge/Open_Source-مجوز_آزاد-007EC6?style=flat&logo=open-source-initiative&logoColor=white) ![Open Data](https://img.shields.io/badge/Open_Data-داده‌_باز-008000?style=flat&logo=open-access&logoColor=white) ![GitHub Repo stars](https://img.shields.io/github/stars/alirezach/awesome-iran-opendata) 9 | 10 | این مخزن با ایده تسهیل دسترسی و آشنایی پژوهشگران و روزنامه‌نگاران به داده‌های باز با محوریت اختصاصی ایران ساخته شده‌است که شامل منابع دولتی، مراکز پژوهشی دولتی، مراکز بین‌المللی و موسسات مستقل اشتراک‌گذاری داده 11 | می‌باشد.
12 | (با ستاره دادن به من و با انتشارش به کسانی که پژوهشگر یا روزنامه‌نگار هستند انرژی بدید.) 13 | 14 | ### دسترسی سریع به منابع 15 | [داده‌های رسمی و دولتی](#دادههای-رسمی-و-دولتی)
[مراکز پژوهشی رسمی](#مراکز-پژوهشی-رسمی)
[منابع رسمی بین‌المللی](#منابع-رسمی-بینالمللی)
[موسسات مستقل اشتراک‌گذاری داده](#موسسات-مستقل-اشتراکگذاری-داده)
[پلتفرم‌های اشتراک داده](#پلتفرمهای-اشتراک-داده) 16 | 17 | 18 | 19 | 20 | ## داده‌های رسمی و دولتی 21 | 22 | آدرس‌های ذکر شده در این بخش مربوط به ارگان‌های رسمی دولتی در ایران هستند. 23 | 24 | | ردیف | عنوان | موضوع(ات) | فرمت انتشار | توضیحات | 25 | |:----:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------:|:------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| 26 | | 1 | [درگاه ملی آمار (amar.org.ir)](https://amar.org.ir/) | * | pdf
xlsx | پایگاه رسمی مرکز آمار ایران و متولی  اصلی ارائه آمار (496 زیر شاخه) بخشی از آمارها توسط خود سازمان آمار انجام می‌شود و بخشی دیگر از سازمان‌های مربوطه دریافت و منتشر می‌شود. | 27 | | 2 | [درگاه ملی کاتالوگ و مجموعه داده‌های باز و کاربردی (data.gov.ir)](https://data.gov.ir/) | * | pdf
xlsx | درگاه واحد گردآوری داده‌های باز دولت جمهوری اسلامی ایران زیر نظر سازمان فناوری اطلاعات ایران | 28 | | 3 | [بانک داده‌های اقتصادی و مالی (mefa.ir)](https://databank.mefa.ir/) | اقتصادی | xlsx
chart | این سایت ذیل دفتر آینده پژوهی، مدلسازی و مدیریت اطلاعات اقتصادی - معاونت امور اقتصادی - وزارت امور اقتصادی و دارایی فعالیت می‌کند. | 29 | | 4 | [آمار گمرک جمهوری اسلامی ایران (irica.ir)](https://irica.ir/web_directory/55334-%D8%A2%D9%85%D8%A7%D8%B1.html) | اقتصادی (واردات/صادرات) | pdf
xlsx | آمار حجمی و ریالی واردات و صادرات غیرنفتی | 30 | | 5 | [سازمان برنامه و بودجه كشور (mporg.ir)](https://mporg.ir/home) | اقتصادی (بودجه و هزینه‌کردها) | | | 31 | | 6 | [پایگاه اطلاعات قراردادهای كشور (mporg.ir)](https://cdb.mporg.ir/) | اقتصادی | - | کلیه قراردادهای تجاری بخش عمومی کشور | 32 | | 7 | [سامانه مدیریت خدمات دولت (mardom.ir)](https://khadamat.mardom.ir/) | * | - | اطلاعات خدمات دولتی و متولی آن خدمات به تفکیک خدمت و سازمان | 33 | | 8 | [پورتال آمار و اطلاعات سازمان ثبت احوال (sabteahval.ir)](https://amar.sabteahval.ir/#/homeGlobal) | جمعیتی | داشبورد
xlsx | تولد، فوت، ازدواج و طلاق | 34 | | 9 | [مرکز برنامه ریزی و اطلاعات راهبردی وزارت تعاون، کار و رفاه اجتماعی (mcls.gov.ir)](https://ssicenter.mcls.gov.ir/) | اقتصادی و اجتماعی | pdf
xlsx | | 35 | | 10 | [سامانه ملی انتشار و دسترسی ازاد به اطلاعات (iranfoia.ir)](https://iranfoia.ir/) | * | pdf | سازمان‌ها و شرکت‌های دولتی موظند داده‌های خود را در این سامانه منتشر یا به درخواست کاربر برای او ارسال کنند. | 36 | | 11 | [آمار و عملکرد واگذاری سازمان خصوصی سازی \| (ipo.ir)](https://ipo.ir/%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF-%D9%88%D8%A7%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C) | | pdf
xlsx | | 37 | | 12 | [بانک مرکزی جمهوری اسلامی ایران (cbi.ir)](https://www.cbi.ir/) | اقتصادی | pdf
xlsx
chart | آمارهای اقتصادی و بانکی (تورم، بودجه خانوار، مسکن، ارز و ...) | 38 | | 13 | [سازمان اداری و استخدامی کشور (aro.gov.ir)](https://aro.gov.ir/fa-IR/PortalAro/1/page/%D8%B5%D9%81%D8%AD%D9%87-%D8%A7%D8%B5%D9%84%DB%8C) | نظام اداری | | آمار و اطلاعات نظام اداری (کارمندان دولتی) | 39 | | 14 | [پایگاه آمار و اطلاعات آب و فاضلاب کشور (nww.ir)](https://www.nww.ir/stat) | آب | pdf
xlsx | | 40 | | 15 | [شبكه آمار و اطلاعات وزارت نیرو (moe.gov.ir)](https://isn.moe.gov.ir/) | آب و برق | pdf | | 41 | | 16 | [دفتر برنامه‌ریزی و اقتصاد کلان برق و انرژی](https://pep.moe.gov.ir/) | برق | pdf | | 42 | | 17 | [نما: جایگاه علم، فناوری، و نوآوری ایران در جهان (irandoc.ac.ir)](https://nema.irandoc.ac.ir/) | سطح علمی در جهان | chart
text | زیرنظر پژوهشگاه علوم و فناوری اطلاعات ایران (ایرانداک) | 43 | | 18 | [آک - آمار کتابخانه ها (irandoc.ac.ir)](https://ak.irandoc.ac.ir/Home/Index) | کتاب و کتابخانه | chart
text | زیرنظر پژوهشگاه علوم و فناوری اطلاعات ایران (ایرانداک) | 44 | | 19 | [سامانه شفاف‌سازی وزارت فرهنگ و ارشاد اسلامی](https://cfoia.farhang.gov.ir/) | فرهنگی | - | مجوزها و قراردادهای فرهنگی (فیلم، موسیقی، هنر و ...) | 45 | | 20 | [تهران نما - شهرداری تهران](https://data.tehran.ir/) | داده‌های شهر تهران | chart
| داده‌ها در حوزه‌های مختلف مربوط به شهر تهران | 46 | | 21 | [سامانه شفافیت شهرداری تهران](https://shafaf.tehran.ir/) | داده‌های شهرداری تهران | داشبورد
xlsx
pdf | معاملات، برنامه و بودجه، شهرسازی و ... | 47 | | 22 | [پایگاه اطلاعات رفاه ایرانیان](https://refahdb.mcls.gov.ir/fa/downloaddata-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%D8%AF%D8%A7%D8%AF%D9%87) | اقتصادی و اجتماعی | xlsx | نمونه 2 درصدی از اطلاعات موجود در پایگاه ملی اطلاعات رفاه ایرانیان | 48 | | 23 | [سازمان پزشکی قانونی](https://www.lmo.ir/fa/page/105849-%D8%A7%D8%B7%EF%BB%BC%D8%B9%D8%A7%D8%AA-%D8%A2%D9%85%D8%A7%D8%B1%DB%8C.html) | اجتماعی | pdf | آمار فوتی‌های ناشی  رانندگی، نزاع، ، سوختگی، غرق‌شدگی و ... | 49 | | 24 | [سازمان تأمین اجتماعی](https://www.tamin.ir/News/Item/109681?catid=223) | بیمه‌ای | xlsx
pdf | سری زمانی آمارهای حوزه بیمه ای، درمانی و مالی | 50 | | 25 | [مرکز تحقیقات راه، مسکن و شهرسازی](https://www.bhrc.ac.ir/) | حمل و نقل و زیرساخت | pdf
xlsx | آمار حمل و نقل جاده‌ای، ریلی، هوایی و دریایی، حوزه مسکن، ساختمان و شهرسازی، ژئونگاری، ذیل وزارت راه و شهرسازی | 51 | | 26 | [مرکز مدیریت راه‌های کشور](https://141.ir/) | اطلاعات راه‌های کشور و ترددشمارها | | | 52 | | 27 | [وزارت راه و شهرسازی جمهوری اسلامی ایران](https://www.mrud.ir/) | اقتصادی، زیرساخت، شهرسازی | pdf | مسکن، حمل و نقل‌ها،  شهرسازی  و ... | 53 | | 28 | [ شرکت مدیریت شبکه برق ایران (وزارت نیرو)](https://www.igmc.ir/statistical-center) | وضعیت شبکه برق | xlsx | گزارش روزانه نیاز مصرف در پیک شب و روز | 54 | | 29 | [آمار صنعت برق (شرکت مادر تخصصی توانیر)](https://amar.tavanir.org.ir/) | امار صنعت برق | xlsx
pdf | آمار رسمی، پیک مصرف، شرکت‌های زیرمجموعه و ... | 55 | | 30 | [وزارت صنعت، معدن و تجارت](https://www.mimt.gov.ir/) | اقتصادی | pdf | تعداد واحدهای صنعتی و تجاری، رشد اقتصادی گروه‌های مختلف اقتصادی،  تولید داخلی و ... | 56 | | 31 | [سامانه پایش کیفی هوای کشور](https://aqms.doe.ir/) | شاخص کیفیت هوای کشور | - | شاخص و آلاینده‌های هوا به تفکیک ایستگاه‌های هواشناسی کشور | 57 | | 32 | [شرکت کنترل کیفیت هوای تهران](https://airnow.tehran.ir/) | شاخص کیفیت هوای تهران | - | شاخص و آلاینده‌های هوا به تفکیک ایستگاه‌های هواشناسی کشور | 58 | | 33 | [سازمان غذا و دارو](https://www.fda.gov.ir/) | پزشکی | xlsx
pdf | دارو، فرآورده‌های غذایی، آرایشی و بهداشتی، مرجع کنترل دارو و ... | 59 | | 34 | [معاونت درمان وزارت بهداشت درمان و آموزش پزشکی](https://avab.behdasht.gov.ir/hospital/) | لیست بیمارستان‌های کشور | - | | 60 | | 35 | [مدیریت فناوری بورس تهران](https://www.tsetmc.com/) | اقتصادی | - | وضعیت بازار بورس، سهام، شرکت‌ها، گروه‌های صنعتی در بازار بورس | 61 | | 36 | [فرابورس ایران](https://www.ifb.ir/) | اقتصادی | - | وضعیت بازار بورس، سهام، شرکت‌ها، گروه‌های صنعتی در بازار فرابورس | 62 | | 37 | [بورس کالای ایران](https://www.ime.co.ir/) | اقتصادی | xlsx
pdf | وضعیت بازار بورس، سهام، شرکت‌ها، گروه‌های صنعتی در بازار بورس کالای ایران | 63 | | 38 | [مدیریت پژوهش، توسعه و مطالعات اسلامی](سازمان بورس و اوراق بهادار) | اقتصادی | xlsx
pdf | گزارش آماری بازارسرمایه،  شاخص سود نقدی شرکت‌ها و ... . ذیل سازمان و اوراق بهادار | 64 | | 39 | [بورس انرژی ایران](https://iee.ir/) | اقتصادی | xlsx | گزارش  آماری بازار بورس انرژی (برق، مشتقه، فیزیکی) | 65 | | 40 | [روزنامه رسمی](https://www.rrk.ir/News/NewsList.aspx) | اقتصادی | | آگهی‌های ثبتی تاسیس و تغییرات شرکت‌ها و علائم تجاری | 66 | | 41 | [سامانه شفافیت کمیته امداد](https://www.emdad.ir/fa/shafaf) | - | pdf | آمار عملکرد و گزارش سالانه کمیته امداد | 67 | | 42 | [پایگاه داده های علوم زمین](https://www.ngdir.ir/) | - | - | زیر نظر سازمان زمین‌شناسی و اکتشافات معدنی کشور | 68 | 69 | 70 | * علامت * به معنای گستره کامل موضوعی است. 71 | 72 | 73 | ## مراکز پژوهشی رسمی 74 | 75 | بخشی از داده‌ها که امکان انتشار عمومی ندارند در مراکز پژوهشی وابسته به نهادها تحلیل و بررسی می‌شوند و امکان استفاده به عنوان داده‌های ثانویه یا خروجی پژوهش‌ها هست. در این بخش مراکز پژوهشی وابسته به نهادها فهرست شده‌اند. 76 | 77 | | ردیف | عنوان | موضوع(ات) | فرمت انتشار | توضیحات | 78 | |:----:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------:|:-------------:|:----------------------------------------------------------------------:| 79 | | 1 | [مرکز پژوهش‌های مجلس](https://rc.majlis.ir/) | * | pdf | | 80 | | 2 | [مقالات و طرح های وزارت تعاون، کار و رفاه اجتماعی (mcls.gov.ir)](https://www.mcls.gov.ir/fa/kar/maghalat-%d9%85%d9%82%d8%a7%d9%84%d8%a7%d8%aa-%d9%88-%d8%b7%d8%b1%d8%ad-%d9%87%d8%a7) | اجتماعی و اقتصادی | pdf | | 81 | | 3 | [پایگاه ملی اطلاع رسانی قوانین و مقررات کشور (dotic.ir)](https://dotic.ir/) | قانون‌ها، لوایح، طرح‌ها، آیین‌نامه‌ها و مصوبات حقوقی | متن | معاونت تدوین، تنقیح و انتشار قوانین و مقررات معاونت حقوقی ریاست جمهوری | 82 | | 4 | [مرکز افکارسنجی دانشجویان ایران (ispa.ir)](https://ispa.ir/Default/Index/fa) | رصد افکار عمومی | pdf | جهاد دانشگاهی | 83 | | 5 | [دفتر مطالعات و برنامه‌ریزی راهبردی وزارت ارشاد](https://motaleat.farhang.gov.ir/) | فرهنگی | pdf | گزارشات سالانه و آمارهای فرهنگ و هنر | 84 | | 6 | [موسسه پژوهش و برنامه ریزی آموزش عالی (irphe.ac.ir)](https://irphe.ac.ir/) | - گزارش‌ها و پژوهش‌های آموزش عالی | pdf
chart | موسسه پژوهشی وزارت علوم | 85 | | | | | | | 86 | 87 | * علامت * به معنای گستره کامل موضوعی است. 88 | 89 | 90 | ## منابع رسمی بین‌المللی 91 | 92 | | ردیف | عنوان | موضوع(ات) | فرمت انتشار | توضیحات | 93 | |:----:|:-------------------------------------------------------------------------------------------------------:|:-------------------------------:|:------------------------------------:|:----------------------------------------------:| 94 | | 1 | [World Bank](https://data.worldbank.org/country/iran-islamic-rep) | اقتصادی و اجتماعی | Chart
xlsx
CSV | بانک جهانی | 95 | | 2 | [IMF](https://www.imf.org/en/Countries/IRN) | اقتصادی | xlsx
pdf
chart | صندوق بین‌المللی پول | 96 | | 3 | [UNESCO](https://www.unesco.org/en/data-center) | اجتماعی، فرهنگی و اقتصادی | xlsx
dahsboard
csv | یونسکو (سازمان آموزشی، علمی و فرهنگی ملل متحد) | 97 | | 4 | [OECD Data Explorer](https://data-explorer.oecd.org)
[OECD Library](https://www.oecd-ilibrary.org/) | اقتصادی و اجتماعی | dashboard
csv | سازمان همکاری و توسعه اقتصادی | 98 | | 5 | [World Inequality Database](https://wid.world/country/iran/) | اقتصادی | Dashboard
CSV
xlsx
sdmax | دیتابیس جهانی نابرابری | 99 | | 6 | [UNFPA](https://www.unfpa.org/) | اجتماعی، اقتصادی، فرهنگی، آموزش | chart
map
csv | صندوق جمعیت سازمان ملل | 100 | | 7 | [ILO](https://ilostat.ilo.org/data/) | کار | csv
xlsx
dta | سازمان جهانی کار | 101 | | 8 | [Climate Data Store](https://cds.climate.copernicus.eu/cdsapp#!/search?type=dataset) | اقلیمی | NetCDF | خدمات تغییر اقلیم کوپرنیک | 102 | 103 | 104 | 105 | ## موسسات مستقل اشتراک‌گذاری داده 106 | 107 | در این بخش سایت‌ها و نهادهای مستقل داخلی و خارجی که داده‌های مربوط به ایران را منتشر می‌کنند یا بعد از پاکسازی و تغییرات لازم داده‌های قابل تحلیل منتشر می کنند، فهرست شده‌اند. 108 | 109 | | ردیف | عنوان | موضوع(ات) | فرمت انتشار | توضیحات | 110 | |:----:|:-------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------:|:-------------:|:---------------------------------------------------------------------------------:| 111 | | 1 | [داده‌های باز ایران](https://iranopendata.org/dataset/)
[داده (نمای شاخص‌های اجتماعی، اقتصادی و سیاسی )](https://dadeh.org/fa) | * | csv
pdf | انتشار داده‌های رسمی، غیررسمی و بین‌المللی مربوط به ایران | 112 | | 2 | [ایران بودجه](https://iranbudget.org/) | بودجه | csv
chart | انتشار نسخه قابل تحلیل بودجه | 113 | | 3 | [Iran Social Science Data Portal](https://irandataportal.syr.edu/) | * | | زیر نظر دانشگاه Syracuse 
به‌روز نیست اما اسناد تاریخی زیادی در آن موجود هست. | 114 | | 4 | [Thirtyone Land](https://fa.thirtyone.land/) | * | chart
csv | انتشار داده‌های رسمی، غیررسمی و بین‌المللی مربوط به ایران | 115 | | 5 | [داده‌های مجله دقیقه](https://d-learn.ir/tag/%d8%af%d8%a7%d8%af%d9%87%d9%87%d8%a7%db%8c-%d9%85%d8%ac%d9%84%d9%87-%d8%af%d9%82%db%8c%d9%82%d9%87/) | * | csv | انتشار داده‌های عمومی | 116 | | 6 | [Our world in Data](https://ourworldindata.org/search?q=iran) | * | chart
csv | انتشار داده‌های عمومی کشورها از منابع معتبر | 117 | | 7 | [Stanford Iran 2040](https://iranian-studies.stanford.edu/iran-2040-project/home) | * | chart | پروژه ایران 2040 زیر نظر مرکز مطالعات ایرانیان دانشگاه استفورد | 118 | | 8 | [رسمیو](https://rasmio.com/) | اطلاعات شرکت‌ها | - | اطلاعات تاسیس، تغییرات شرکت‌ها، اشخاص مربوطه و ...
(دسترسی رایگان محدود است) | 119 | | 9 | [لینکا](https://linka.ir/) | اطلاعات شرکت‌ها | - | اطلاعات تاسیس، تغییرات شرکت‌ها، اشخاص مربوطه و ...
(دسترسی رایگان محدود است) | 120 | 121 | 122 | 123 | ## پلتفرم‌های اشتراک داده 124 | 125 | | ردیف | عنوان | موضوع(ات) | فرمت انتشار | توضیحات | 126 | |:----:|:--------------------------------------------------------------------:|:---------:|:-------------:|:---------------------------------------------------------------:| 127 | | 1 | [Google Public data](https://www.google.com/publicdata/directory) | * | csv
pdf | آرشیو داده‌های عمومی | 128 | | 2 | [Google Trends](https://trends.google.com/trends/) | * | csv | ترندهای جست‌و‌جو در گوگل | 129 | | 3 | [Google Dataset Searche](https://datasetsearch.research.google.com/) | * | - | جست‌و‌جو در دیتاست‌های عمومی | 130 | | 4 | [Data Commons (Google)](https://datacommons.org/place/country/IRN) | * | chart
csv | تجمیع داده‌های اجتماعی اقتصادی کل جهان از مراکز رسمی بین‌المللی | 131 | | 5 | [Kaggle](https://www.kaggle.com/) | * | | اشتراک‌گذاری دیتاست‌های عمومی و شخصی مثل داده‌کاوی‌ها | 132 | | 6 | [Huggingface](https://huggingface.co/docs/datasets/index) | * | | اشتراک‌گذاری دیتاست‌های عمومی و شخصی مثل داده‌کاوی‌ها | 133 | | 7 | [GitHub](https://github.com) | * | | اشتراک‌گذاری دیتاست‌های عمومی و شخصی مثل داده‌کاوی‌ها | 134 | 135 | اگر علاقه‌مند به داده‌های باز هستید، به مخزن [Awesome Public Data](https://github.com/awesomedata/awesome-public-datasets) نیز سر بزنید. 136 | 137 | 138 | 139 | #### منابع 140 | بخشی از اطلاعات این مخزن از منابع زیر جمع‌اوری شده‌اند: 141 | 142 | 1. [داده‌های عمومی در ایران](https://d-learn.ir/courses/storytelling-data-and-journalism/lesson/public-data-in-iran/)،دقیقه 143 | 144 | 145 | 146 | ### این مخزن به مرور تکمیل می‌گردد. 147 | 148 | 149 | اگر منابع دیگری می‌شناسید، می‌توانید به لیست فوق اضافه کنید. 150 | مستقیما به [![GitHub](https://img.shields.io/badge/GitHub-مخزن_پروژه-181717?style=flat&logo=github&logoColor=white)](https://github.com/alirezach/awesome-iran-opendata) سربزنید و پیشنهادات خود را ثبت کنید. 151 | یا اگر آشنایی با فضای گیتهاب ندارید به ایمیل [![Email](https://img.shields.io/badge/Email-من-D14836?style=flat&logo=gmail&logoColor=white)](mailto:alireza.chamanzar91@gmail.com) ارسال کنید. 152 | 153 |
154 | 155 | -------------------------------------------------------------------------------- /README_files/libs/quarto-html/quarto.js: -------------------------------------------------------------------------------- 1 | const sectionChanged = new CustomEvent("quarto-sectionChanged", { 2 | detail: {}, 3 | bubbles: true, 4 | cancelable: false, 5 | composed: false, 6 | }); 7 | 8 | const layoutMarginEls = () => { 9 | // Find any conflicting margin elements and add margins to the 10 | // top to prevent overlap 11 | const marginChildren = window.document.querySelectorAll( 12 | ".column-margin.column-container > *, .margin-caption, .aside" 13 | ); 14 | 15 | let lastBottom = 0; 16 | for (const marginChild of marginChildren) { 17 | if (marginChild.offsetParent !== null) { 18 | // clear the top margin so we recompute it 19 | marginChild.style.marginTop = null; 20 | const top = marginChild.getBoundingClientRect().top + window.scrollY; 21 | if (top < lastBottom) { 22 | const marginChildStyle = window.getComputedStyle(marginChild); 23 | const marginBottom = parseFloat(marginChildStyle["marginBottom"]); 24 | const margin = lastBottom - top + marginBottom; 25 | marginChild.style.marginTop = `${margin}px`; 26 | } 27 | const styles = window.getComputedStyle(marginChild); 28 | const marginTop = parseFloat(styles["marginTop"]); 29 | lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; 30 | } 31 | } 32 | }; 33 | 34 | window.document.addEventListener("DOMContentLoaded", function (_event) { 35 | // Recompute the position of margin elements anytime the body size changes 36 | if (window.ResizeObserver) { 37 | const resizeObserver = new window.ResizeObserver( 38 | throttle(() => { 39 | layoutMarginEls(); 40 | if ( 41 | window.document.body.getBoundingClientRect().width < 990 && 42 | isReaderMode() 43 | ) { 44 | quartoToggleReader(); 45 | } 46 | }, 50) 47 | ); 48 | resizeObserver.observe(window.document.body); 49 | } 50 | 51 | const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]'); 52 | const sidebarEl = window.document.getElementById("quarto-sidebar"); 53 | const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left"); 54 | const marginSidebarEl = window.document.getElementById( 55 | "quarto-margin-sidebar" 56 | ); 57 | // function to determine whether the element has a previous sibling that is active 58 | const prevSiblingIsActiveLink = (el) => { 59 | const sibling = el.previousElementSibling; 60 | if (sibling && sibling.tagName === "A") { 61 | return sibling.classList.contains("active"); 62 | } else { 63 | return false; 64 | } 65 | }; 66 | 67 | // fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior) 68 | function fireSlideEnter(e) { 69 | const event = window.document.createEvent("Event"); 70 | event.initEvent("slideenter", true, true); 71 | window.document.dispatchEvent(event); 72 | } 73 | const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); 74 | tabs.forEach((tab) => { 75 | tab.addEventListener("shown.bs.tab", fireSlideEnter); 76 | }); 77 | 78 | // fire slideEnter for tabby tab activations (for htmlwidget resize behavior) 79 | document.addEventListener("tabby", fireSlideEnter, false); 80 | 81 | // Track scrolling and mark TOC links as active 82 | // get table of contents and sidebar (bail if we don't have at least one) 83 | const tocLinks = tocEl 84 | ? [...tocEl.querySelectorAll("a[data-scroll-target]")] 85 | : []; 86 | const makeActive = (link) => tocLinks[link].classList.add("active"); 87 | const removeActive = (link) => tocLinks[link].classList.remove("active"); 88 | const removeAllActive = () => 89 | [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link)); 90 | 91 | // activate the anchor for a section associated with this TOC entry 92 | tocLinks.forEach((link) => { 93 | link.addEventListener("click", () => { 94 | if (link.href.indexOf("#") !== -1) { 95 | const anchor = link.href.split("#")[1]; 96 | const heading = window.document.querySelector( 97 | `[data-anchor-id="${anchor}"]` 98 | ); 99 | if (heading) { 100 | // Add the class 101 | heading.classList.add("reveal-anchorjs-link"); 102 | 103 | // function to show the anchor 104 | const handleMouseout = () => { 105 | heading.classList.remove("reveal-anchorjs-link"); 106 | heading.removeEventListener("mouseout", handleMouseout); 107 | }; 108 | 109 | // add a function to clear the anchor when the user mouses out of it 110 | heading.addEventListener("mouseout", handleMouseout); 111 | } 112 | } 113 | }); 114 | }); 115 | 116 | const sections = tocLinks.map((link) => { 117 | const target = link.getAttribute("data-scroll-target"); 118 | if (target.startsWith("#")) { 119 | return window.document.getElementById(decodeURI(`${target.slice(1)}`)); 120 | } else { 121 | return window.document.querySelector(decodeURI(`${target}`)); 122 | } 123 | }); 124 | 125 | const sectionMargin = 200; 126 | let currentActive = 0; 127 | // track whether we've initialized state the first time 128 | let init = false; 129 | 130 | const updateActiveLink = () => { 131 | // The index from bottom to top (e.g. reversed list) 132 | let sectionIndex = -1; 133 | if ( 134 | window.innerHeight + window.pageYOffset >= 135 | window.document.body.offsetHeight 136 | ) { 137 | // This is the no-scroll case where last section should be the active one 138 | sectionIndex = 0; 139 | } else { 140 | // This finds the last section visible on screen that should be made active 141 | sectionIndex = [...sections].reverse().findIndex((section) => { 142 | if (section) { 143 | return window.pageYOffset >= section.offsetTop - sectionMargin; 144 | } else { 145 | return false; 146 | } 147 | }); 148 | } 149 | if (sectionIndex > -1) { 150 | const current = sections.length - sectionIndex - 1; 151 | if (current !== currentActive) { 152 | removeAllActive(); 153 | currentActive = current; 154 | makeActive(current); 155 | if (init) { 156 | window.dispatchEvent(sectionChanged); 157 | } 158 | init = true; 159 | } 160 | } 161 | }; 162 | 163 | const inHiddenRegion = (top, bottom, hiddenRegions) => { 164 | for (const region of hiddenRegions) { 165 | if (top <= region.bottom && bottom >= region.top) { 166 | return true; 167 | } 168 | } 169 | return false; 170 | }; 171 | 172 | const categorySelector = "header.quarto-title-block .quarto-category"; 173 | const activateCategories = (href) => { 174 | // Find any categories 175 | // Surround them with a link pointing back to: 176 | // #category=Authoring 177 | try { 178 | const categoryEls = window.document.querySelectorAll(categorySelector); 179 | for (const categoryEl of categoryEls) { 180 | const categoryText = categoryEl.textContent; 181 | if (categoryText) { 182 | const link = `${href}#category=${encodeURIComponent(categoryText)}`; 183 | const linkEl = window.document.createElement("a"); 184 | linkEl.setAttribute("href", link); 185 | for (const child of categoryEl.childNodes) { 186 | linkEl.append(child); 187 | } 188 | categoryEl.appendChild(linkEl); 189 | } 190 | } 191 | } catch { 192 | // Ignore errors 193 | } 194 | }; 195 | function hasTitleCategories() { 196 | return window.document.querySelector(categorySelector) !== null; 197 | } 198 | 199 | function offsetRelativeUrl(url) { 200 | const offset = getMeta("quarto:offset"); 201 | return offset ? offset + url : url; 202 | } 203 | 204 | function offsetAbsoluteUrl(url) { 205 | const offset = getMeta("quarto:offset"); 206 | const baseUrl = new URL(offset, window.location); 207 | 208 | const projRelativeUrl = url.replace(baseUrl, ""); 209 | if (projRelativeUrl.startsWith("/")) { 210 | return projRelativeUrl; 211 | } else { 212 | return "/" + projRelativeUrl; 213 | } 214 | } 215 | 216 | // read a meta tag value 217 | function getMeta(metaName) { 218 | const metas = window.document.getElementsByTagName("meta"); 219 | for (let i = 0; i < metas.length; i++) { 220 | if (metas[i].getAttribute("name") === metaName) { 221 | return metas[i].getAttribute("content"); 222 | } 223 | } 224 | return ""; 225 | } 226 | 227 | async function findAndActivateCategories() { 228 | const currentPagePath = offsetAbsoluteUrl(window.location.href); 229 | const response = await fetch(offsetRelativeUrl("listings.json")); 230 | if (response.status == 200) { 231 | return response.json().then(function (listingPaths) { 232 | const listingHrefs = []; 233 | for (const listingPath of listingPaths) { 234 | const pathWithoutLeadingSlash = listingPath.listing.substring(1); 235 | for (const item of listingPath.items) { 236 | if ( 237 | item === currentPagePath || 238 | item === currentPagePath + "index.html" 239 | ) { 240 | // Resolve this path against the offset to be sure 241 | // we already are using the correct path to the listing 242 | // (this adjusts the listing urls to be rooted against 243 | // whatever root the page is actually running against) 244 | const relative = offsetRelativeUrl(pathWithoutLeadingSlash); 245 | const baseUrl = window.location; 246 | const resolvedPath = new URL(relative, baseUrl); 247 | listingHrefs.push(resolvedPath.pathname); 248 | break; 249 | } 250 | } 251 | } 252 | 253 | // Look up the tree for a nearby linting and use that if we find one 254 | const nearestListing = findNearestParentListing( 255 | offsetAbsoluteUrl(window.location.pathname), 256 | listingHrefs 257 | ); 258 | if (nearestListing) { 259 | activateCategories(nearestListing); 260 | } else { 261 | // See if the referrer is a listing page for this item 262 | const referredRelativePath = offsetAbsoluteUrl(document.referrer); 263 | const referrerListing = listingHrefs.find((listingHref) => { 264 | const isListingReferrer = 265 | listingHref === referredRelativePath || 266 | listingHref === referredRelativePath + "index.html"; 267 | return isListingReferrer; 268 | }); 269 | 270 | if (referrerListing) { 271 | // Try to use the referrer if possible 272 | activateCategories(referrerListing); 273 | } else if (listingHrefs.length > 0) { 274 | // Otherwise, just fall back to the first listing 275 | activateCategories(listingHrefs[0]); 276 | } 277 | } 278 | }); 279 | } 280 | } 281 | if (hasTitleCategories()) { 282 | findAndActivateCategories(); 283 | } 284 | 285 | const findNearestParentListing = (href, listingHrefs) => { 286 | if (!href || !listingHrefs) { 287 | return undefined; 288 | } 289 | // Look up the tree for a nearby linting and use that if we find one 290 | const relativeParts = href.substring(1).split("/"); 291 | while (relativeParts.length > 0) { 292 | const path = relativeParts.join("/"); 293 | for (const listingHref of listingHrefs) { 294 | if (listingHref.startsWith(path)) { 295 | return listingHref; 296 | } 297 | } 298 | relativeParts.pop(); 299 | } 300 | 301 | return undefined; 302 | }; 303 | 304 | const manageSidebarVisiblity = (el, placeholderDescriptor) => { 305 | let isVisible = true; 306 | let elRect; 307 | 308 | return (hiddenRegions) => { 309 | if (el === null) { 310 | return; 311 | } 312 | 313 | // Find the last element of the TOC 314 | const lastChildEl = el.lastElementChild; 315 | 316 | if (lastChildEl) { 317 | // Converts the sidebar to a menu 318 | const convertToMenu = () => { 319 | for (const child of el.children) { 320 | child.style.opacity = 0; 321 | child.style.overflow = "hidden"; 322 | child.style.pointerEvents = "none"; 323 | } 324 | 325 | nexttick(() => { 326 | const toggleContainer = window.document.createElement("div"); 327 | toggleContainer.style.width = "100%"; 328 | toggleContainer.classList.add("zindex-over-content"); 329 | toggleContainer.classList.add("quarto-sidebar-toggle"); 330 | toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom 331 | toggleContainer.id = placeholderDescriptor.id; 332 | toggleContainer.style.position = "fixed"; 333 | 334 | const toggleIcon = window.document.createElement("i"); 335 | toggleIcon.classList.add("quarto-sidebar-toggle-icon"); 336 | toggleIcon.classList.add("bi"); 337 | toggleIcon.classList.add("bi-caret-down-fill"); 338 | 339 | const toggleTitle = window.document.createElement("div"); 340 | const titleEl = window.document.body.querySelector( 341 | placeholderDescriptor.titleSelector 342 | ); 343 | if (titleEl) { 344 | toggleTitle.append( 345 | titleEl.textContent || titleEl.innerText, 346 | toggleIcon 347 | ); 348 | } 349 | toggleTitle.classList.add("zindex-over-content"); 350 | toggleTitle.classList.add("quarto-sidebar-toggle-title"); 351 | toggleContainer.append(toggleTitle); 352 | 353 | const toggleContents = window.document.createElement("div"); 354 | toggleContents.classList = el.classList; 355 | toggleContents.classList.add("zindex-over-content"); 356 | toggleContents.classList.add("quarto-sidebar-toggle-contents"); 357 | for (const child of el.children) { 358 | if (child.id === "toc-title") { 359 | continue; 360 | } 361 | 362 | const clone = child.cloneNode(true); 363 | clone.style.opacity = 1; 364 | clone.style.pointerEvents = null; 365 | clone.style.display = null; 366 | toggleContents.append(clone); 367 | } 368 | toggleContents.style.height = "0px"; 369 | const positionToggle = () => { 370 | // position the element (top left of parent, same width as parent) 371 | if (!elRect) { 372 | elRect = el.getBoundingClientRect(); 373 | } 374 | toggleContainer.style.left = `${elRect.left}px`; 375 | toggleContainer.style.top = `${elRect.top}px`; 376 | toggleContainer.style.width = `${elRect.width}px`; 377 | }; 378 | positionToggle(); 379 | 380 | toggleContainer.append(toggleContents); 381 | el.parentElement.prepend(toggleContainer); 382 | 383 | // Process clicks 384 | let tocShowing = false; 385 | // Allow the caller to control whether this is dismissed 386 | // when it is clicked (e.g. sidebar navigation supports 387 | // opening and closing the nav tree, so don't dismiss on click) 388 | const clickEl = placeholderDescriptor.dismissOnClick 389 | ? toggleContainer 390 | : toggleTitle; 391 | 392 | const closeToggle = () => { 393 | if (tocShowing) { 394 | toggleContainer.classList.remove("expanded"); 395 | toggleContents.style.height = "0px"; 396 | tocShowing = false; 397 | } 398 | }; 399 | 400 | // Get rid of any expanded toggle if the user scrolls 401 | window.document.addEventListener( 402 | "scroll", 403 | throttle(() => { 404 | closeToggle(); 405 | }, 50) 406 | ); 407 | 408 | // Handle positioning of the toggle 409 | window.addEventListener( 410 | "resize", 411 | throttle(() => { 412 | elRect = undefined; 413 | positionToggle(); 414 | }, 50) 415 | ); 416 | 417 | window.addEventListener("quarto-hrChanged", () => { 418 | elRect = undefined; 419 | }); 420 | 421 | // Process the click 422 | clickEl.onclick = () => { 423 | if (!tocShowing) { 424 | toggleContainer.classList.add("expanded"); 425 | toggleContents.style.height = null; 426 | tocShowing = true; 427 | } else { 428 | closeToggle(); 429 | } 430 | }; 431 | }); 432 | }; 433 | 434 | // Converts a sidebar from a menu back to a sidebar 435 | const convertToSidebar = () => { 436 | for (const child of el.children) { 437 | child.style.opacity = 1; 438 | child.style.overflow = null; 439 | child.style.pointerEvents = null; 440 | } 441 | 442 | const placeholderEl = window.document.getElementById( 443 | placeholderDescriptor.id 444 | ); 445 | if (placeholderEl) { 446 | placeholderEl.remove(); 447 | } 448 | 449 | el.classList.remove("rollup"); 450 | }; 451 | 452 | if (isReaderMode()) { 453 | convertToMenu(); 454 | isVisible = false; 455 | } else { 456 | // Find the top and bottom o the element that is being managed 457 | const elTop = el.offsetTop; 458 | const elBottom = 459 | elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; 460 | 461 | if (!isVisible) { 462 | // If the element is current not visible reveal if there are 463 | // no conflicts with overlay regions 464 | if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) { 465 | convertToSidebar(); 466 | isVisible = true; 467 | } 468 | } else { 469 | // If the element is visible, hide it if it conflicts with overlay regions 470 | // and insert a placeholder toggle (or if we're in reader mode) 471 | if (inHiddenRegion(elTop, elBottom, hiddenRegions)) { 472 | convertToMenu(); 473 | isVisible = false; 474 | } 475 | } 476 | } 477 | } 478 | }; 479 | }; 480 | 481 | const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]'); 482 | for (const tabEl of tabEls) { 483 | const id = tabEl.getAttribute("data-bs-target"); 484 | if (id) { 485 | const columnEl = document.querySelector( 486 | `${id} .column-margin, .tabset-margin-content` 487 | ); 488 | if (columnEl) 489 | tabEl.addEventListener("shown.bs.tab", function (event) { 490 | const el = event.srcElement; 491 | if (el) { 492 | const visibleCls = `${el.id}-margin-content`; 493 | // walk up until we find a parent tabset 494 | let panelTabsetEl = el.parentElement; 495 | while (panelTabsetEl) { 496 | if (panelTabsetEl.classList.contains("panel-tabset")) { 497 | break; 498 | } 499 | panelTabsetEl = panelTabsetEl.parentElement; 500 | } 501 | 502 | if (panelTabsetEl) { 503 | const prevSib = panelTabsetEl.previousElementSibling; 504 | if ( 505 | prevSib && 506 | prevSib.classList.contains("tabset-margin-container") 507 | ) { 508 | const childNodes = prevSib.querySelectorAll( 509 | ".tabset-margin-content" 510 | ); 511 | for (const childEl of childNodes) { 512 | if (childEl.classList.contains(visibleCls)) { 513 | childEl.classList.remove("collapse"); 514 | } else { 515 | childEl.classList.add("collapse"); 516 | } 517 | } 518 | } 519 | } 520 | } 521 | 522 | layoutMarginEls(); 523 | }); 524 | } 525 | } 526 | 527 | // Manage the visibility of the toc and the sidebar 528 | const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, { 529 | id: "quarto-toc-toggle", 530 | titleSelector: "#toc-title", 531 | dismissOnClick: true, 532 | }); 533 | const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, { 534 | id: "quarto-sidebarnav-toggle", 535 | titleSelector: ".title", 536 | dismissOnClick: false, 537 | }); 538 | let tocLeftScrollVisibility; 539 | if (leftTocEl) { 540 | tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, { 541 | id: "quarto-lefttoc-toggle", 542 | titleSelector: "#toc-title", 543 | dismissOnClick: true, 544 | }); 545 | } 546 | 547 | // Find the first element that uses formatting in special columns 548 | const conflictingEls = window.document.body.querySelectorAll( 549 | '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]' 550 | ); 551 | 552 | // Filter all the possibly conflicting elements into ones 553 | // the do conflict on the left or ride side 554 | const arrConflictingEls = Array.from(conflictingEls); 555 | const leftSideConflictEls = arrConflictingEls.filter((el) => { 556 | if (el.tagName === "ASIDE") { 557 | return false; 558 | } 559 | return Array.from(el.classList).find((className) => { 560 | return ( 561 | className !== "column-body" && 562 | className.startsWith("column-") && 563 | !className.endsWith("right") && 564 | !className.endsWith("container") && 565 | className !== "column-margin" 566 | ); 567 | }); 568 | }); 569 | const rightSideConflictEls = arrConflictingEls.filter((el) => { 570 | if (el.tagName === "ASIDE") { 571 | return true; 572 | } 573 | 574 | const hasMarginCaption = Array.from(el.classList).find((className) => { 575 | return className == "margin-caption"; 576 | }); 577 | if (hasMarginCaption) { 578 | return true; 579 | } 580 | 581 | return Array.from(el.classList).find((className) => { 582 | return ( 583 | className !== "column-body" && 584 | !className.endsWith("container") && 585 | className.startsWith("column-") && 586 | !className.endsWith("left") 587 | ); 588 | }); 589 | }); 590 | 591 | const kOverlapPaddingSize = 10; 592 | function toRegions(els) { 593 | return els.map((el) => { 594 | const boundRect = el.getBoundingClientRect(); 595 | const top = 596 | boundRect.top + 597 | document.documentElement.scrollTop - 598 | kOverlapPaddingSize; 599 | return { 600 | top, 601 | bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, 602 | }; 603 | }); 604 | } 605 | 606 | let hasObserved = false; 607 | const visibleItemObserver = (els) => { 608 | let visibleElements = [...els]; 609 | const intersectionObserver = new IntersectionObserver( 610 | (entries, _observer) => { 611 | entries.forEach((entry) => { 612 | if (entry.isIntersecting) { 613 | if (visibleElements.indexOf(entry.target) === -1) { 614 | visibleElements.push(entry.target); 615 | } 616 | } else { 617 | visibleElements = visibleElements.filter((visibleEntry) => { 618 | return visibleEntry !== entry; 619 | }); 620 | } 621 | }); 622 | 623 | if (!hasObserved) { 624 | hideOverlappedSidebars(); 625 | } 626 | hasObserved = true; 627 | }, 628 | {} 629 | ); 630 | els.forEach((el) => { 631 | intersectionObserver.observe(el); 632 | }); 633 | 634 | return { 635 | getVisibleEntries: () => { 636 | return visibleElements; 637 | }, 638 | }; 639 | }; 640 | 641 | const rightElementObserver = visibleItemObserver(rightSideConflictEls); 642 | const leftElementObserver = visibleItemObserver(leftSideConflictEls); 643 | 644 | const hideOverlappedSidebars = () => { 645 | marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries())); 646 | sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries())); 647 | if (tocLeftScrollVisibility) { 648 | tocLeftScrollVisibility( 649 | toRegions(leftElementObserver.getVisibleEntries()) 650 | ); 651 | } 652 | }; 653 | 654 | window.quartoToggleReader = () => { 655 | // Applies a slow class (or removes it) 656 | // to update the transition speed 657 | const slowTransition = (slow) => { 658 | const manageTransition = (id, slow) => { 659 | const el = document.getElementById(id); 660 | if (el) { 661 | if (slow) { 662 | el.classList.add("slow"); 663 | } else { 664 | el.classList.remove("slow"); 665 | } 666 | } 667 | }; 668 | 669 | manageTransition("TOC", slow); 670 | manageTransition("quarto-sidebar", slow); 671 | }; 672 | const readerMode = !isReaderMode(); 673 | setReaderModeValue(readerMode); 674 | 675 | // If we're entering reader mode, slow the transition 676 | if (readerMode) { 677 | slowTransition(readerMode); 678 | } 679 | highlightReaderToggle(readerMode); 680 | hideOverlappedSidebars(); 681 | 682 | // If we're exiting reader mode, restore the non-slow transition 683 | if (!readerMode) { 684 | slowTransition(!readerMode); 685 | } 686 | }; 687 | 688 | const highlightReaderToggle = (readerMode) => { 689 | const els = document.querySelectorAll(".quarto-reader-toggle"); 690 | if (els) { 691 | els.forEach((el) => { 692 | if (readerMode) { 693 | el.classList.add("reader"); 694 | } else { 695 | el.classList.remove("reader"); 696 | } 697 | }); 698 | } 699 | }; 700 | 701 | const setReaderModeValue = (val) => { 702 | if (window.location.protocol !== "file:") { 703 | window.localStorage.setItem("quarto-reader-mode", val); 704 | } else { 705 | localReaderMode = val; 706 | } 707 | }; 708 | 709 | const isReaderMode = () => { 710 | if (window.location.protocol !== "file:") { 711 | return window.localStorage.getItem("quarto-reader-mode") === "true"; 712 | } else { 713 | return localReaderMode; 714 | } 715 | }; 716 | let localReaderMode = null; 717 | 718 | const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded"); 719 | const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1; 720 | 721 | // Walk the TOC and collapse/expand nodes 722 | // Nodes are expanded if: 723 | // - they are top level 724 | // - they have children that are 'active' links 725 | // - they are directly below an link that is 'active' 726 | const walk = (el, depth) => { 727 | // Tick depth when we enter a UL 728 | if (el.tagName === "UL") { 729 | depth = depth + 1; 730 | } 731 | 732 | // It this is active link 733 | let isActiveNode = false; 734 | if (el.tagName === "A" && el.classList.contains("active")) { 735 | isActiveNode = true; 736 | } 737 | 738 | // See if there is an active child to this element 739 | let hasActiveChild = false; 740 | for (child of el.children) { 741 | hasActiveChild = walk(child, depth) || hasActiveChild; 742 | } 743 | 744 | // Process the collapse state if this is an UL 745 | if (el.tagName === "UL") { 746 | if (tocOpenDepth === -1 && depth > 1) { 747 | // toc-expand: false 748 | el.classList.add("collapse"); 749 | } else if ( 750 | depth <= tocOpenDepth || 751 | hasActiveChild || 752 | prevSiblingIsActiveLink(el) 753 | ) { 754 | el.classList.remove("collapse"); 755 | } else { 756 | el.classList.add("collapse"); 757 | } 758 | 759 | // untick depth when we leave a UL 760 | depth = depth - 1; 761 | } 762 | return hasActiveChild || isActiveNode; 763 | }; 764 | 765 | // walk the TOC and expand / collapse any items that should be shown 766 | if (tocEl) { 767 | updateActiveLink(); 768 | walk(tocEl, 0); 769 | } 770 | 771 | // Throttle the scroll event and walk peridiocally 772 | window.document.addEventListener( 773 | "scroll", 774 | throttle(() => { 775 | if (tocEl) { 776 | updateActiveLink(); 777 | walk(tocEl, 0); 778 | } 779 | if (!isReaderMode()) { 780 | hideOverlappedSidebars(); 781 | } 782 | }, 5) 783 | ); 784 | window.addEventListener( 785 | "resize", 786 | throttle(() => { 787 | if (tocEl) { 788 | updateActiveLink(); 789 | walk(tocEl, 0); 790 | } 791 | if (!isReaderMode()) { 792 | hideOverlappedSidebars(); 793 | } 794 | }, 10) 795 | ); 796 | hideOverlappedSidebars(); 797 | highlightReaderToggle(isReaderMode()); 798 | }); 799 | 800 | // grouped tabsets 801 | window.addEventListener("pageshow", (_event) => { 802 | function getTabSettings() { 803 | const data = localStorage.getItem("quarto-persistent-tabsets-data"); 804 | if (!data) { 805 | localStorage.setItem("quarto-persistent-tabsets-data", "{}"); 806 | return {}; 807 | } 808 | if (data) { 809 | return JSON.parse(data); 810 | } 811 | } 812 | 813 | function setTabSettings(data) { 814 | localStorage.setItem( 815 | "quarto-persistent-tabsets-data", 816 | JSON.stringify(data) 817 | ); 818 | } 819 | 820 | function setTabState(groupName, groupValue) { 821 | const data = getTabSettings(); 822 | data[groupName] = groupValue; 823 | setTabSettings(data); 824 | } 825 | 826 | function toggleTab(tab, active) { 827 | const tabPanelId = tab.getAttribute("aria-controls"); 828 | const tabPanel = document.getElementById(tabPanelId); 829 | if (active) { 830 | tab.classList.add("active"); 831 | tabPanel.classList.add("active"); 832 | } else { 833 | tab.classList.remove("active"); 834 | tabPanel.classList.remove("active"); 835 | } 836 | } 837 | 838 | function toggleAll(selectedGroup, selectorsToSync) { 839 | for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) { 840 | const active = selectedGroup === thisGroup; 841 | for (const tab of tabs) { 842 | toggleTab(tab, active); 843 | } 844 | } 845 | } 846 | 847 | function findSelectorsToSyncByLanguage() { 848 | const result = {}; 849 | const tabs = Array.from( 850 | document.querySelectorAll(`div[data-group] a[id^='tabset-']`) 851 | ); 852 | for (const item of tabs) { 853 | const div = item.parentElement.parentElement.parentElement; 854 | const group = div.getAttribute("data-group"); 855 | if (!result[group]) { 856 | result[group] = {}; 857 | } 858 | const selectorsToSync = result[group]; 859 | const value = item.innerHTML; 860 | if (!selectorsToSync[value]) { 861 | selectorsToSync[value] = []; 862 | } 863 | selectorsToSync[value].push(item); 864 | } 865 | return result; 866 | } 867 | 868 | function setupSelectorSync() { 869 | const selectorsToSync = findSelectorsToSyncByLanguage(); 870 | Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => { 871 | Object.entries(tabSetsByValue).forEach(([value, items]) => { 872 | items.forEach((item) => { 873 | item.addEventListener("click", (_event) => { 874 | setTabState(group, value); 875 | toggleAll(value, selectorsToSync[group]); 876 | }); 877 | }); 878 | }); 879 | }); 880 | return selectorsToSync; 881 | } 882 | 883 | const selectorsToSync = setupSelectorSync(); 884 | for (const [group, selectedName] of Object.entries(getTabSettings())) { 885 | const selectors = selectorsToSync[group]; 886 | // it's possible that stale state gives us empty selections, so we explicitly check here. 887 | if (selectors) { 888 | toggleAll(selectedName, selectors); 889 | } 890 | } 891 | }); 892 | 893 | function throttle(func, wait) { 894 | let waiting = false; 895 | return function () { 896 | if (!waiting) { 897 | func.apply(this, arguments); 898 | waiting = true; 899 | setTimeout(function () { 900 | waiting = false; 901 | }, wait); 902 | } 903 | }; 904 | } 905 | 906 | function nexttick(func) { 907 | return setTimeout(func, 0); 908 | } 909 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | readme 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
43 | 44 |
45 | 46 | 47 | 48 | 49 | 50 |
51 |

Awesome Iran open data

52 |
53 | 58 |
59 |

Open Source Open Data GitHub Repo stars

60 |

این مخزن با ایده تسهیل دسترسی و آشنایی پژوهشگران و روزنامه‌نگاران به داده‌های باز با محوریت اختصاصی ایران ساخته شده‌است که شامل منابع دولتی، مراکز پژوهشی دولتی، مراکز بین‌المللی و موسسات مستقل اشتراک‌گذاری داده می‌باشد. (با ستاره دادن به من و با انتشارش به کسانی که پژوهشگر یا روزنامه‌نگار هستند انرژی بدید.)

61 |
62 |

دسترسی سریع به منابع

63 |

داده‌های رسمی و دولتی
مراکز پژوهشی رسمی
منابع رسمی بین‌المللی
موسسات مستقل اشتراک‌گذاری داده
پلتفرم‌های اشتراک داده

64 |
65 |
66 |

داده‌های رسمی و دولتی

67 |

آدرس‌های ذکر شده در این بخش مربوط به ارگان‌های رسمی دولتی در ایران هستند.

68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 |
ردیفعنوانموضوع(ات)فرمت انتشارتوضیحات
1درگاه ملی آمار (amar.org.ir)*pdf
xlsx
پایگاه رسمی مرکز آمار ایران و متولی  اصلی ارائه آمار (496 زیر شاخه) بخشی از آمارها توسط خود سازمان آمار انجام می‌شود و بخشی دیگر از سازمان‌های مربوطه دریافت و منتشر می‌شود.
2درگاه ملی کاتالوگ و مجموعه داده‌های باز و کاربردی (data.gov.ir)*pdf
xlsx
درگاه واحد گردآوری داده‌های باز دولت جمهوری اسلامی ایران زیر نظر سازمان فناوری اطلاعات ایران
3بانک داده‌های اقتصادی و مالی (mefa.ir)اقتصادیxlsx
chart
این سایت ذیل دفتر آینده پژوهی، مدلسازی و مدیریت اطلاعات اقتصادی - معاونت امور اقتصادی - وزارت امور اقتصادی و دارایی فعالیت می‌کند.
4آمار گمرک جمهوری اسلامی ایران (irica.ir)اقتصادی (واردات/صادرات)pdf
xlsx
آمار حجمی و ریالی واردات و صادرات غیرنفتی
5سازمان برنامه و بودجه كشور (mporg.ir)اقتصادی (بودجه و هزینه‌کردها)
6پایگاه اطلاعات قراردادهای كشور (mporg.ir)اقتصادی-کلیه قراردادهای تجاری بخش عمومی کشور
7سامانه مدیریت خدمات دولت (mardom.ir)*-اطلاعات خدمات دولتی و متولی آن خدمات به تفکیک خدمت و سازمان
8پورتال آمار و اطلاعات سازمان ثبت احوال (sabteahval.ir)جمعیتیداشبورد
xlsx
تولد، فوت، ازدواج و طلاق
9مرکز برنامه ریزی و اطلاعات راهبردی وزارت تعاون، کار و رفاه اجتماعی (mcls.gov.ir)اقتصادی و اجتماعیpdf
xlsx
10سامانه ملی انتشار و دسترسی ازاد به اطلاعات (iranfoia.ir)*pdfسازمان‌ها و شرکت‌های دولتی موظند داده‌های خود را در این سامانه منتشر یا به درخواست کاربر برای او ارسال کنند.
11آمار و عملکرد واگذاری سازمان خصوصی سازی | (ipo.ir)pdf
xlsx
12بانک مرکزی جمهوری اسلامی ایران (cbi.ir)اقتصادیpdf
xlsx
chart
آمارهای اقتصادی و بانکی (تورم، بودجه خانوار، مسکن، ارز و …)
13سازمان اداری و استخدامی کشور (aro.gov.ir)نظام اداریآمار و اطلاعات نظام اداری (کارمندان دولتی)
14پایگاه آمار و اطلاعات آب و فاضلاب کشور (nww.ir)آبpdf
xlsx
15شبكه آمار و اطلاعات وزارت نیرو (moe.gov.ir)آب و برقpdf
16دفتر برنامه‌ریزی و اقتصاد کلان برق و انرژیبرقpdf
17نما: جایگاه علم، فناوری، و نوآوری ایران در جهان (irandoc.ac.ir)سطح علمی در جهانchart
text
زیرنظر پژوهشگاه علوم و فناوری اطلاعات ایران (ایرانداک)
18آک - آمار کتابخانه ها (irandoc.ac.ir)کتاب و کتابخانهchart
text
زیرنظر پژوهشگاه علوم و فناوری اطلاعات ایران (ایرانداک)
19سامانه شفاف‌سازی وزارت فرهنگ و ارشاد اسلامیفرهنگی-مجوزها و قراردادهای فرهنگی (فیلم، موسیقی، هنر و …)
20تهران نما - شهرداری تهرانداده‌های شهر تهرانchart
داده‌ها در حوزه‌های مختلف مربوط به شهر تهران
21سامانه شفافیت شهرداری تهرانداده‌های شهرداری تهرانداشبورد
xlsx
pdf
معاملات، برنامه و بودجه، شهرسازی و …
22پایگاه اطلاعات رفاه ایرانیاناقتصادی و اجتماعیxlsxنمونه 2 درصدی از اطلاعات موجود در پایگاه ملی اطلاعات رفاه ایرانیان
23سازمان پزشکی قانونیاجتماعیpdfآمار فوتی‌های ناشی  رانندگی، نزاع، ، سوختگی، غرق‌شدگی و …
24سازمان تأمین اجتماعیبیمه‌ایxlsx
pdf
سری زمانی آمارهای حوزه بیمه ای، درمانی و مالی
25مرکز تحقیقات راه، مسکن و شهرسازیحمل و نقل و زیرساختpdf
xlsx
آمار حمل و نقل جاده‌ای، ریلی، هوایی و دریایی، حوزه مسکن، ساختمان و شهرسازی، ژئونگاری، ذیل وزارت راه و شهرسازی
26مرکز مدیریت راه‌های کشوراطلاعات راه‌های کشور و ترددشمارها
27وزارت راه و شهرسازی جمهوری اسلامی ایراناقتصادی، زیرساخت، شهرسازیpdfمسکن، حمل و نقل‌ها،  شهرسازی  و …
28 شرکت مدیریت شبکه برق ایران (وزارت نیرو)وضعیت شبکه برقxlsxگزارش روزانه نیاز مصرف در پیک شب و روز
29آمار صنعت برق (شرکت مادر تخصصی توانیر)امار صنعت برقxlsx
pdf
آمار رسمی، پیک مصرف، شرکت‌های زیرمجموعه و …
30وزارت صنعت، معدن و تجارتاقتصادیpdfتعداد واحدهای صنعتی و تجاری، رشد اقتصادی گروه‌های مختلف اقتصادی،  تولید داخلی و …
31سامانه پایش کیفی هوای کشورشاخص کیفیت هوای کشور-شاخص و آلاینده‌های هوا به تفکیک ایستگاه‌های هواشناسی کشور
32شرکت کنترل کیفیت هوای تهرانشاخص کیفیت هوای تهران-شاخص و آلاینده‌های هوا به تفکیک ایستگاه‌های هواشناسی کشور
33سازمان غذا و داروپزشکیxlsx
pdf
دارو، فرآورده‌های غذایی، آرایشی و بهداشتی، مرجع کنترل دارو و …
34معاونت درمان وزارت بهداشت درمان و آموزش پزشکیلیست بیمارستان‌های کشور-
35مدیریت فناوری بورس تهراناقتصادی-وضعیت بازار بورس، سهام، شرکت‌ها، گروه‌های صنعتی در بازار بورس
36فرابورس ایراناقتصادی-وضعیت بازار بورس، سهام، شرکت‌ها، گروه‌های صنعتی در بازار فرابورس
37بورس کالای ایراناقتصادیxlsx
pdf
وضعیت بازار بورس، سهام، شرکت‌ها، گروه‌های صنعتی در بازار بورس کالای ایران
38مدیریت پژوهش، توسعه و مطالعات اسلامیاقتصادیxlsx
pdf
گزارش آماری بازارسرمایه،  شاخص سود نقدی شرکت‌ها و … . ذیل سازمان و اوراق بهادار
39بورس انرژی ایراناقتصادیxlsxگزارش  آماری بازار بورس انرژی (برق، مشتقه، فیزیکی)
40روزنامه رسمیاقتصادیآگهی‌های ثبتی تاسیس و تغییرات شرکت‌ها و علائم تجاری
41سامانه شفافیت کمیته امداد-pdfآمار عملکرد و گزارش سالانه کمیته امداد
368 |
    369 |
  • علامت * به معنای گستره کامل موضوعی است.
  • 370 |
371 |
372 |
373 |

مراکز پژوهشی رسمی

374 |

بخشی از داده‌ها که امکان انتشار عمومی ندارند در مراکز پژوهشی وابسته به نهادها تحلیل و بررسی می‌شوند و امکان استفاده به عنوان داده‌های ثانویه یا خروجی پژوهش‌ها هست. در این بخش مراکز پژوهشی وابسته به نهادها فهرست شده‌اند.

375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 |
ردیفعنوانموضوع(ات)فرمت انتشارتوضیحات
1مرکز پژوهش‌های مجلس*pdf
2مقالات و طرح های وزارت تعاون، کار و رفاه اجتماعی (mcls.gov.ir)اجتماعی و اقتصادیpdf
3پایگاه ملی اطلاع رسانی قوانین و مقررات کشور (dotic.ir)قانون‌ها، لوایح، طرح‌ها، آیین‌نامه‌ها و مصوبات حقوقیمتنمعاونت تدوین، تنقیح و انتشار قوانین و مقررات معاونت حقوقی ریاست جمهوری
4مرکز افکارسنجی دانشجویان ایران (ispa.ir)رصد افکار عمومیpdfجهاد دانشگاهی
5دفتر مطالعات و برنامه‌ریزی راهبردی وزارت ارشادفرهنگیpdfگزارشات سالانه و آمارهای فرهنگ و هنر
6موسسه پژوهش و برنامه ریزی آموزش عالی (irphe.ac.ir)- گزارش‌ها و پژوهش‌های آموزش عالیpdf
chart
موسسه پژوهشی وزارت علوم
437 |
    438 |
  • علامت * به معنای گستره کامل موضوعی است.
  • 439 |
440 |
441 |
442 |

منابع رسمی بین‌المللی

443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 |
ردیفعنوانموضوع(ات)فرمت انتشارتوضیحات
1World Bankاقتصادی و اجتماعیChart
xlsx
CSV
بانک جهانی
2IMFاقتصادیxlsx
pdf
chart
صندوق بین‌المللی پول
3UNESCOاجتماعی، فرهنگی و اقتصادیxlsx
dahsboard
csv
یونسکو (سازمان آموزشی، علمی و فرهنگی ملل متحد)
4OECD Data Explorer
OECD Library
اقتصادی و اجتماعیdashboard
csv
سازمان همکاری و توسعه اقتصادی
5World Inequality DatabaseاقتصادیDashboard
CSV
xlsx
sdmax
دیتابیس جهانی نابرابری
6UNFPAاجتماعی، اقتصادی، فرهنگی، آموزشchart
map
csv
صندوق جمعیت سازمان ملل
7ILOکارcsv
xlsx
dta
سازمان جهانی کار
512 |
513 |
514 |

موسسات مستقل اشتراک‌گذاری داده

515 |

در این بخش سایت‌ها و نهادهای مستقل داخلی و خارجی که داده‌های مربوط به ایران را منتشر می‌کنند یا بعد از پاکسازی و تغییرات لازم داده‌های قابل تحلیل منتشر می کنند، فهرست شده‌اند.

516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 |
ردیفعنوانموضوع(ات)فرمت انتشارتوضیحات
1داده‌های باز ایران
داده (نمای شاخص‌های اجتماعی، اقتصادی و سیاسی )
*csv
pdf
انتشار داده‌های رسمی، غیررسمی و بین‌المللی مربوط به ایران
2ایران بودجهبودجهcsv
chart
انتشار نسخه قابل تحلیل بودجه
3Iran Social Science Data Portal*زیر نظر دانشگاه Syracuse 
به‌روز نیست اما اسناد تاریخی زیادی در آن موجود هست.
4Thirtyone Land*chart
csv
انتشار داده‌های رسمی، غیررسمی و بین‌المللی مربوط به ایران
5داده‌های مجله دقیقه*csvانتشار داده‌های عمومی
6Our world in Data*chart
csv
انتشار داده‌های عمومی کشورها از منابع معتبر
7Stanford Iran 2040*chartپروژه ایران 2040 زیر نظر مرکز مطالعات ایرانیان دانشگاه استفورد
8رسمیواطلاعات شرکت‌ها-اطلاعات تاسیس، تغییرات شرکت‌ها، اشخاص مربوطه و …
(دسترسی رایگان محدود است)
9لینکااطلاعات شرکت‌ها-اطلاعات تاسیس، تغییرات شرکت‌ها، اشخاص مربوطه و …
(دسترسی رایگان محدود است)
592 |
593 |
594 |

پلتفرم‌های اشتراک داده

595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 |
ردیفعنوانموضوع(ات)فرمت انتشارتوضیحات
1Google Public data*csv
pdf
آرشیو داده‌های عمومی
2Google Trends*csvترندهای جست‌و‌جو در گوگل
3Google Dataset Searche*-جست‌و‌جو در دیتاست‌های عمومی
4Data Commons (Google)*chart
csv
تجمیع داده‌های اجتماعی اقتصادی کل جهان از مراکز رسمی بین‌المللی
5Kaggle*اشتراک‌گذاری دیتاست‌های عمومی و شخصی مثل داده‌کاوی‌ها
6Huggingface*اشتراک‌گذاری دیتاست‌های عمومی و شخصی مثل داده‌کاوی‌ها
7GitHub*اشتراک‌گذاری دیتاست‌های عمومی و شخصی مثل داده‌کاوی‌ها
657 |

اگر علاقه‌مند به داده‌های باز هستید، به مخزن Awesome Public Data نیز سر بزنید.

658 |
659 |

منابع

660 |

بخشی از اطلاعات این مخزن از منابع زیر جمع‌اوری شده‌اند:

661 |
    662 |
  1. داده‌های عمومی در ایران،دقیقه
  2. 663 |
664 |
665 |
666 |

این مخزن به مرور تکمیل می‌گردد.

667 |

اگر منابع دیگری می‌شناسید، می‌توانید به لیست فوق اضافه کنید. مستقیما به GitHub سربزنید و پیشنهادات خود را ثبت کنید. یا اگر آشنایی با فضای گیتهاب ندارید به ایمیل Email ارسال کنید.

668 |

669 |
670 |
671 |
672 | 673 |
674 | 675 | 1095 |
1096 | 1097 | 1098 | 1099 | 1100 | --------------------------------------------------------------------------------