a:4:{s:14:"__file_content";s:19:"alb-saved-templates";s:8:"KameraS1";s:3994:"[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='']
[KameraPlayer][/KameraPlayer]

[Kamera data="languages.tr.audio" ]
<audio style="width: 100%;" autoplay="autoplay" controls="controls">
<source src="#var#" type="audio/mpeg">
<embed src="#var#" controls="" width="100%">
<a href="#var#" target="_blank">Dinlemek için tıklayınız.</a>
</audio>
[/Kamera]
[/av_textblock]

[av_three_fifth first min_height='' vertical_alignment='av-align-top' space='' row_boxshadow='' row_boxshadow_color='' row_boxshadow_width='10' custom_margin='' margin='0px' mobile_breaking='' min_col_height='' padding='' svg_div_top='' svg_div_top_color='#333333' svg_div_top_width='100' svg_div_top_height='50' svg_div_top_max_height='none' svg_div_top_flip='' svg_div_top_invert='' svg_div_top_front='' svg_div_top_opacity='' svg_div_top_preview='' svg_div_bottom='' svg_div_bottom_color='#333333' svg_div_bottom_width='100' svg_div_bottom_height='50' svg_div_bottom_max_height='none' svg_div_bottom_flip='' svg_div_bottom_invert='' svg_div_bottom_front='' svg_div_bottom_opacity='' svg_div_bottom_preview='' border='' border_style='solid' border_color='' radius='' column_boxshadow='' column_boxshadow_color='' column_boxshadow_width='10' background='bg_color' background_color='' background_gradient_direction='vertical' background_gradient_color1='#000000' background_gradient_color2='#ffffff' background_gradient_color3='' src='' background_position='top left' background_repeat='no-repeat' highlight='' highlight_size='' animation='' link='' linktarget='' link_hover='' title_attr='' alt_attr='' mobile_display='' id='' custom_class='' template_class='' aria_label='' av_uid='' sc_version='1.0']
[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='rgb(255, 255, 255) none repeat scroll 0% 0%']
[Kamera data="title" ]
<h2>#var#</h2>
[/Kamera]
[/av_textblock]

[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='rgb(255, 255, 255) none repeat scroll 0% 0%']
[Kamera data="languages.tr.content" ][/Kamera]
[/av_textblock]
[/av_three_fifth]

[av_two_fifth min_height='' vertical_alignment='av-align-top' space='' row_boxshadow='' row_boxshadow_color='' row_boxshadow_width='10' custom_margin='' margin='0px' mobile_breaking='' min_col_height='' padding='' svg_div_top='' svg_div_top_color='#333333' svg_div_top_width='100' svg_div_top_height='50' svg_div_top_max_height='none' svg_div_top_flip='' svg_div_top_invert='' svg_div_top_front='' svg_div_top_opacity='' svg_div_top_preview='' svg_div_bottom='' svg_div_bottom_color='#333333' svg_div_bottom_width='100' svg_div_bottom_height='50' svg_div_bottom_max_height='none' svg_div_bottom_flip='' svg_div_bottom_invert='' svg_div_bottom_front='' svg_div_bottom_opacity='' svg_div_bottom_preview='' border='' border_style='solid' border_color='' radius='' column_boxshadow='' column_boxshadow_color='' column_boxshadow_width='10' background='bg_color' background_color='' background_gradient_direction='vertical' background_gradient_color1='#000000' background_gradient_color2='#ffffff' background_gradient_color3='' src='' background_position='top left' background_repeat='no-repeat' highlight='' highlight_size='' animation='' link='' linktarget='' link_hover='' title_attr='' alt_attr='' mobile_display='' id='' custom_class='' template_class='' aria_label='' av_uid='' sc_version='1.0']
[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='']
[KameraMap]
[/av_textblock]
[/av_two_fifth]";s:8:"KameraS2";s:3748:"[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='']
[KameraPlayer]
[KameraAudio lang="tr" autoplay="autoplay"]
[/av_textblock]

[av_three_fifth first min_height='' vertical_alignment='av-align-top' space='' row_boxshadow='' row_boxshadow_color='' row_boxshadow_width='10' custom_margin='' margin='0px' mobile_breaking='' min_col_height='' padding='' svg_div_top='' svg_div_top_color='#333333' svg_div_top_width='100' svg_div_top_height='50' svg_div_top_max_height='none' svg_div_top_flip='' svg_div_top_invert='' svg_div_top_front='' svg_div_top_opacity='' svg_div_top_preview='' svg_div_bottom='' svg_div_bottom_color='#333333' svg_div_bottom_width='100' svg_div_bottom_height='50' svg_div_bottom_max_height='none' svg_div_bottom_flip='' svg_div_bottom_invert='' svg_div_bottom_front='' svg_div_bottom_opacity='' svg_div_bottom_preview='' border='' border_style='solid' border_color='' radius='' column_boxshadow='' column_boxshadow_color='' column_boxshadow_width='10' background='bg_color' background_color='' background_gradient_direction='vertical' background_gradient_color1='#000000' background_gradient_color2='#ffffff' background_gradient_color3='' src='' background_position='top left' background_repeat='no-repeat' highlight='' highlight_size='' animation='' link='' linktarget='' link_hover='' title_attr='' alt_attr='' mobile_display='' id='' custom_class='' template_class='' aria_label='' av_uid='' sc_version='1.0']
[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='rgb(255, 255, 255) none repeat scroll 0% 0%']
[Kamera data="title" ]
<h2>#var#</h2>
[/Kamera]
[/av_textblock]

[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='rgb(255, 255, 255) none repeat scroll 0% 0%']
[Kamera data="languages.tr.content" ][/Kamera]
[/av_textblock]
[/av_three_fifth]

[av_two_fifth min_height='' vertical_alignment='av-align-top' space='' row_boxshadow='' row_boxshadow_color='' row_boxshadow_width='10' custom_margin='' margin='0px' mobile_breaking='' min_col_height='' padding='' svg_div_top='' svg_div_top_color='#333333' svg_div_top_width='100' svg_div_top_height='50' svg_div_top_max_height='none' svg_div_top_flip='' svg_div_top_invert='' svg_div_top_front='' svg_div_top_opacity='' svg_div_top_preview='' svg_div_bottom='' svg_div_bottom_color='#333333' svg_div_bottom_width='100' svg_div_bottom_height='50' svg_div_bottom_max_height='none' svg_div_bottom_flip='' svg_div_bottom_invert='' svg_div_bottom_front='' svg_div_bottom_opacity='' svg_div_bottom_preview='' border='' border_style='solid' border_color='' radius='' column_boxshadow='' column_boxshadow_color='' column_boxshadow_width='10' background='bg_color' background_color='' background_gradient_direction='vertical' background_gradient_color1='#000000' background_gradient_color2='#ffffff' background_gradient_color3='' src='' background_position='top left' background_repeat='no-repeat' highlight='' highlight_size='' animation='' link='' linktarget='' link_hover='' title_attr='' alt_attr='' mobile_display='' id='' custom_class='' template_class='' aria_label='' av_uid='' sc_version='1.0']
[av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='' sc_version='1.0' admin_preview_bg='']
[KameraMap]
[/av_textblock]
[/av_two_fifth]";s:16:"musilaj-haritasi";s:24728:"[av_layout_row border='' min_height_percent='100' min_height_pc='25' min_height='0' color='main_color' mobile='av-flex-cells' av_element_hidden_in_editor='0' mobile_breaking='' id='' custom_class='' aria_label='' av_uid='av-5mn2']
[av_cell_one_full vertical_align='top' padding='0px' padding_sync='true' background='bg_color' background_color='' background_gradient_color1='' background_gradient_color2='' background_gradient_direction='vertical' src='' attachment='' attachment_size='' background_attachment='scroll' background_position='top left' background_repeat='no-repeat' link='' linktarget='' link_hover='' mobile_display='' av_uid='av-3yhi' custom_class='']

[av_codeblock wrapper_element='' wrapper_element_attributes='header' codeblock_type='' deactivate_wrapper='aviaTBdeactivate_wrapper' av_uid='av-kq3yqpds' alb_description='' id='' custom_class='']
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
 

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
     <script src="https://cdn.rawgit.com/JDMcKinstry/JavaScriptDateFormat/master/Date.format.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/leaflet@1.6.0/dist/leaflet.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.6.0/dist/leaflet.css" />
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Raleway:wght@300;500;700&display=swap" rel="stylesheet">
    <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
[/av_codeblock]

[av_codeblock wrapper_element='' wrapper_element_attributes='' codeblock_type='' av_uid='av-kq3yqpds' alb_description='' id='' custom_class='']
<style>
        body {
            margin: 0;
            padding: 0;
            height: 50%;
            background-color: #212529;
        }
        
        p {
            color: #efefef
        }
        
        .container {
            width: 100%;
            height: 100%;
            margin: 0 0 0 0;
            max-width: 100%;
            max-height: 100%;
        }
        
        body {
            font-family: 'Raleway', sans-serif;
            font-weight: 500;
        }
        
        #map {
            width: 100%;
            height: 100%;
        }
        
        #intro {
            padding: 15px 15px 15px 15px;
            font-size: 13px;
            max-height: 100vh;
            overflow: auto;
        }
        
        #kaynak {
            font-family: 'Raleway', sans-serif;
            font-weight: 300;
            font-size: 11px;
        }
        
        #title {
            color: #ffe000;
            font-family: 'Raleway', sans-serif;
            margin-top: 15px;
            font-weight: 700;
            font-size: 16px;
        }
        
        a {
            color: #ffe000;
        }
        
        img {
            margin-left: 0px;
            margin-right: 15px;
            width: 100%;
        }
        
        #controllers {
            margin: 5px 0px 15px 0px;
            padding: 15px 15px 15px 15px;
            width: 100%;
            background-color: rgba(255, 255, 255, 0.1);
        }
        
        select {
            width: 100%;
        }
        
         :root {
            --circle-radius: 6px;
        }
        
        .circle {
            width: var(--circle-radius) !important;
            height: var(--circle-radius) !important;
            margin-left: ((var(--circle-radius)/2)*-1) !important;
            margin-top: ((var(--circle-radius)/2)*-1) !important;
            background: magenta;
            border-radius: 50%;
        }
        
        #popup {
            position: absolute;
            max-width: 200px;
            z-index: 10000;
        }
        
        blockquote p {
            color: gray;
        }
    </style>
[/av_codeblock]

[av_codeblock wrapper_element='' wrapper_element_attributes='' codeblock_type='' av_uid='av-kq3yqpds' alb_description='' id='' custom_class='']
<div class="container-fluit">



        <div class="row">
            <div class="col-4">

                <div id="intro">


                    <p id="title"><b>MARMARA MÜSİLAJ HARİTASI</b></p>

                    <!-- Control ve dropdown -->
                    <div id='controllers'>
                        <p>Goruntuleme yapmak istediginiz tarihi secin</p>
                        <form>
                            <select name="dropdown" id='date-selector'>
                            </select>
                        </form>
                    </div>

                    <p>
                        Yandaki interaktif harita, son günlerin sıkça tartışılan konularından biri olan Marmara Denizi'ndeki deniz müsilajının güncel yayılımını göstermektedir.
                        <br><br> Müsilaj oluşumu, Akdeniz'de ilk defa 1729 yılında belgelenmiş, özellikle geçtiğimiz 30 yılda artan sıklıklarda gözlenmeye devam etmiştir <sup>[1]</sup>. Marmara Denizi'nde ise en belirgin müsilaj oluşumu 2007 yılında görülmüştür.
                        2007'deki deniz salyası birikimi, İzmit Körfezi'nden Çanakkale Boğazı'na kadar yayılmış, ve bugünküne benzer bir şekilde, daha ağır sanayiden etkilenen ve akıntının Marmara Denizi'ne göre daha yavaş olduğu Körfez'de daha uzun süre
                        ve yoğun bir şekilde kalmıştır <sup>[2]</sup>.
                        <br><br>Yine de, bu sene gözlenen vakanın öncekilere göre daha yoğun olduğu aşikar. Çeşitli kaynaklara göre bu da beklendik bir durum, ve birkaç parametrenin birleşimi.
                        <br><br>Herşeyden önce küresel ısınmanın müsilaj yoğunluğu ve yayılımı ile doğrudan etkisi var: Danovaro ve diğerlerinin 2009 yılında yayınlanan çalışması <sup>[3]</sup>, inceleme yaptıkları 60 yıl boyunca Akdeniz'de görülen iklim
                        anomalileri ile müsilaj patlamalarının doğrudan eşleştiğini gösteriyor. MGM'nin resmi istatistiklerine bakıldığında <sup>[4]</sup> Marmara Denizi'nin 1970-2020 yılları arasında 2°C'den fazla ısındığı görülüyor.
                        <br><br>İkincisi parametre ise tabi ki atık yönetimi. Onyıllardır Marmara Denizi çevresindeki yerleşim alanları, denizi derin deşarj alanı olarak kullanıyor. Haritada nokta olarak yerlerini gördükleriniz, İstanbul'daki atık su
                        deşarj alanları. Bu noktalar dışında denetimsiz deşarjların yapılıyor olduğu ve İstanbul dışındaki şehirlerin deşarj noktalarının bu haritada yer almadığı gerçeğini unutmamak gerek.
                        <br><br>Yeterli oranda arıtılmadan denize boşaltılan atık su, her ne kadar derinden deşarj edilse de, yılların birikimi ile bu atığın etkisi yüzeyde de kendini göstermeye başlıyor. Marmara Denizi'nin dip akıntısı kuzeye, Karadeniz'e
                        doğru. Fakat yüzey akıntısı ters yönde: aşağıdaki gördüğünüz oklar, yüzey akıntısının basitleştirilmiş bir şeması <sup>[5]</sup>. Bu yüzey akıntısı deseni ve bilinen deşarj noktaları birlikte düşünüldüğünde, mevcut müsilaj dağılımı
                        anlamlı hale geliyor, ve yakın gelecekte ne şekilde yayılmaya devam edeceğine dair ip uçları veriyor.
                    </p>

                    <img src="https://raw.githubusercontent.com/PrattSAVI/Musilaj/main/BogazAkinti_Koyu.jpg"></img>
                    <p>
                        <br><br>Bu çalışma, bir süredir çeşitli uzmanın yaptıkları açıklamaları harita üzerinde görselleştirmek amacıyla hazırlandı. Eğer veride veya metinde herhangi bir hata olduğunu düşünüyorsanız bize info@bitsnbricks.com adresinden
                        ulaşabilir, eklemek istediklerinizi <a href="https://twitter.com/search?q=%23musilajharitasi&src=typed_query">#musilajharitasi</a> ile twitter'dan paylaşabilirsiniz!
                        <br><br> Müsilaj verisi Sentinel-2 uydusunun 23 Mayıs ile 8 Haziran tarihleri arasında okumları birleştirilerek elde edilmiştir. Uydu görüntülerinin 4,8a ve 11 bantları kompozitleştirilerek, gözetimli bir makina öğrenmesi algoritması
                        ile eğitilmiş ve tüm Marmara'ya uygulanmıştır. Veriyi vektör formatında <a href="https://github.com/PrattSAVI/Musilaj">buradan</a> indirebilirsiniz. Sentinel-2 verisine ve makine öğrenme algoritmasının eğitim setine
                        <a href="https://github.com/PrattSAVI/Musilaj">buradan</a> ulaşabilirsiniz.
                    </p>

                    <p id="kaynak">
                        <br>[1] Vollenweider, R. A., Montanari, G., Rinaldi, A. (1995) Statistical inferences about the mucilage events in the Adriatic Sea, with special reference to recurrence patterns and claimed relationship to sun activity cycles,
                        Science of The Total Environment, 165 (1–3). 1995, s. 213-224, ISSN 0048-9697. doi:10.1016/0048-9697(95)04554-E.
                        <br>[2] Aktan Y, Dede A, Ciftci P S. 2008. Mucilage event associated with diatoms and dinoflagellates in Sea of Marmara, Turkey. Harmful Algae News, 36.
                        <br>[3] Danovaro R, Fonda Umani S, Pusceddu A. (2009) Climate change and the potential spreading of marine mucilage and microbial pathogens in the Mediterranean Sea. PLoS One. 2009 Sep 16;4(9):e7006. doi: 10.1371/journal.pone.0007006.
                        PMID: 19759910; PMCID: PMC2739426.
                        <br>[4] T.C. Tarım ve Orman Bakanlığı, Meteoroloji Genel Müdürlüğü. Resmi İstatistikler, <a href="https://www.mgm.gov.tr/FILES/resmi-istatistikler/denizSuyu/Marmara-Deniz-Suyu-Sicakligi-Analizi-2019.pdf">Deniz Suyu Sıcaklıkları.</a>                        (09.06.2021 tarihinde erişilmiştir).
                        <br>[5] Beşiktepe, Ş. T., Sur, H. İ., Özsoy, E., Latif, M. A., Oǧuz, T., Ünlüata, Ü. (1994) The circulation and hydrography of the Marmara Sea, Progress in Oceanography, 34 (4). 1994. s. 285-334. ISSN 0079-6611, doi:10.1016/0079-6611(94)90018-3.
                    </p>

                    <p>
                        <i>by <a href="http://bitsnbricks.com/">Bits 'n Bricks</a> & <a href="https://commons.pratt.edu/savi/">SAVI</a> & TUM <a href="https://www.ar.tum.de/en/klima/start/">Chair of Building Technology and Climate-Responsive Design</a></i>
                    </p>

                </div>
            </div>
            <div class="col-8">
                <div id='popup'></div>
                <div id="map"></div>
            </div>
        </div>
    </div>
[/av_codeblock]

[av_codeblock wrapper_element='' wrapper_element_attributes='' codeblock_type='' av_uid='av-kq3yqpds' alb_description='' id='' custom_class='']
<div class="container">



        <div class="row">
            <div class="col-4">

                <div id="intro">


                    <p id="title"><b>MARMARA MÜSİLAJ HARİTASI</b></p>

                    <!-- Control ve dropdown -->
                    <div id='controllers'>
                        <p>Goruntuleme yapmak istediginiz tarihi secin</p>
                        <form>
                            <select name="dropdown" id='date-selector'>
                            </select>
                        </form>
                    </div>

                    <p>
                        Yandaki interaktif harita, son günlerin sıkça tartışılan konularından biri olan Marmara Denizi'ndeki deniz müsilajının güncel yayılımını göstermektedir.
                        <br><br> Müsilaj oluşumu, Akdeniz'de ilk defa 1729 yılında belgelenmiş, özellikle geçtiğimiz 30 yılda artan sıklıklarda gözlenmeye devam etmiştir <sup>[1]</sup>. Marmara Denizi'nde ise en belirgin müsilaj oluşumu 2007 yılında görülmüştür.
                        2007'deki deniz salyası birikimi, İzmit Körfezi'nden Çanakkale Boğazı'na kadar yayılmış, ve bugünküne benzer bir şekilde, daha ağır sanayiden etkilenen ve akıntının Marmara Denizi'ne göre daha yavaş olduğu Körfez'de daha uzun süre
                        ve yoğun bir şekilde kalmıştır <sup>[2]</sup>.
                        <br><br>Yine de, bu sene gözlenen vakanın öncekilere göre daha yoğun olduğu aşikar. Çeşitli kaynaklara göre bu da beklendik bir durum, ve birkaç parametrenin birleşimi.
                        <br><br>Herşeyden önce küresel ısınmanın müsilaj yoğunluğu ve yayılımı ile doğrudan etkisi var: Danovaro ve diğerlerinin 2009 yılında yayınlanan çalışması <sup>[3]</sup>, inceleme yaptıkları 60 yıl boyunca Akdeniz'de görülen iklim
                        anomalileri ile müsilaj patlamalarının doğrudan eşleştiğini gösteriyor. MGM'nin resmi istatistiklerine bakıldığında <sup>[4]</sup> Marmara Denizi'nin 1970-2020 yılları arasında 2°C'den fazla ısındığı görülüyor.
                        <br><br>İkincisi parametre ise tabi ki atık yönetimi. Onyıllardır Marmara Denizi çevresindeki yerleşim alanları, denizi derin deşarj alanı olarak kullanıyor. Haritada nokta olarak yerlerini gördükleriniz, İstanbul'daki atık su
                        deşarj alanları. Bu noktalar dışında denetimsiz deşarjların yapılıyor olduğu ve İstanbul dışındaki şehirlerin deşarj noktalarının bu haritada yer almadığı gerçeğini unutmamak gerek.
                        <br><br>Yeterli oranda arıtılmadan denize boşaltılan atık su, her ne kadar derinden deşarj edilse de, yılların birikimi ile bu atığın etkisi yüzeyde de kendini göstermeye başlıyor. Marmara Denizi'nin dip akıntısı kuzeye, Karadeniz'e
                        doğru. Fakat yüzey akıntısı ters yönde: aşağıdaki gördüğünüz oklar, yüzey akıntısının basitleştirilmiş bir şeması <sup>[5]</sup>. Bu yüzey akıntısı deseni ve bilinen deşarj noktaları birlikte düşünüldüğünde, mevcut müsilaj dağılımı
                        anlamlı hale geliyor, ve yakın gelecekte ne şekilde yayılmaya devam edeceğine dair ip uçları veriyor.
                    </p>

                    <img src="https://raw.githubusercontent.com/PrattSAVI/Musilaj/main/BogazAkinti_Koyu.jpg"></img>
                    <p>
                        <br><br>Bu çalışma, bir süredir çeşitli uzmanın yaptıkları açıklamaları harita üzerinde görselleştirmek amacıyla hazırlandı. Eğer veride veya metinde herhangi bir hata olduğunu düşünüyorsanız bize info@bitsnbricks.com adresinden
                        ulaşabilir, eklemek istediklerinizi <a href="https://twitter.com/search?q=%23musilajharitasi&src=typed_query">#musilajharitasi</a> ile twitter'dan paylaşabilirsiniz!
                        <br><br> Müsilaj verisi Sentinel-2 uydusunun 23 Mayıs ile 8 Haziran tarihleri arasında okumları birleştirilerek elde edilmiştir. Uydu görüntülerinin 4,8a ve 11 bantları kompozitleştirilerek, gözetimli bir makina öğrenmesi algoritması
                        ile eğitilmiş ve tüm Marmara'ya uygulanmıştır. Veriyi vektör formatında <a href="https://github.com/PrattSAVI/Musilaj">buradan</a> indirebilirsiniz. Sentinel-2 verisine ve makine öğrenme algoritmasının eğitim setine
                        <a href="https://github.com/PrattSAVI/Musilaj">buradan</a> ulaşabilirsiniz.
                    </p>

                    <p id="kaynak">
                        <br>[1] Vollenweider, R. A., Montanari, G., Rinaldi, A. (1995) Statistical inferences about the mucilage events in the Adriatic Sea, with special reference to recurrence patterns and claimed relationship to sun activity cycles,
                        Science of The Total Environment, 165 (1–3). 1995, s. 213-224, ISSN 0048-9697. doi:10.1016/0048-9697(95)04554-E.
                        <br>[2] Aktan Y, Dede A, Ciftci P S. 2008. Mucilage event associated with diatoms and dinoflagellates in Sea of Marmara, Turkey. Harmful Algae News, 36.
                        <br>[3] Danovaro R, Fonda Umani S, Pusceddu A. (2009) Climate change and the potential spreading of marine mucilage and microbial pathogens in the Mediterranean Sea. PLoS One. 2009 Sep 16;4(9):e7006. doi: 10.1371/journal.pone.0007006.
                        PMID: 19759910; PMCID: PMC2739426.
                        <br>[4] T.C. Tarım ve Orman Bakanlığı, Meteoroloji Genel Müdürlüğü. Resmi İstatistikler, <a href="https://www.mgm.gov.tr/FILES/resmi-istatistikler/denizSuyu/Marmara-Deniz-Suyu-Sicakligi-Analizi-2019.pdf">Deniz Suyu Sıcaklıkları.</a>                        (09.06.2021 tarihinde erişilmiştir).
                        <br>[5] Beşiktepe, Ş. T., Sur, H. İ., Özsoy, E., Latif, M. A., Oǧuz, T., Ünlüata, Ü. (1994) The circulation and hydrography of the Marmara Sea, Progress in Oceanography, 34 (4). 1994. s. 285-334. ISSN 0079-6611, doi:10.1016/0079-6611(94)90018-3.
                    </p>

                    <p>
                        <i>by <a href="http://bitsnbricks.com/">Bits 'n Bricks</a> & <a href="https://commons.pratt.edu/savi/">SAVI</a> & TUM <a href="https://www.ar.tum.de/en/klima/start/">Chair of Building Technology and Climate-Responsive Design</a></i>
                    </p>

                </div>
            </div>
            <div class="col-8">
                <div id='popup'></div>
                <div id="map"></div>
            </div>
        </div>
    </div>
[/av_codeblock]

[av_codeblock wrapper_element='' wrapper_element_attributes='' codeblock_type='' av_uid='av-kq3yqpds' alb_description='' id='' custom_class='']
<script>
    // ---  LEAFLET Basemap Tiles
    //40.70197835318973, 28.28485189674848
    var apiRootUrl=``;
    apiRootUrl = `https://prattsavi.github.io/Musilaj/`;
   
    var map = L.map('map').setView([40.7019, 28.2848], 9);

    L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
        attribution: '© <a href="https://www.mapbox.com/about/maps/" style="color:#ffe000">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright"  style="color:#ffe000">OpenStreetMap</a> <strong><a  style="color:#ffe000" href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>',
        tileSize: 512,
        maxZoom: 14,
        minZoom: 8,
        zoomOffset: -1,
        id: 'mapbox/dark-v10',
        accessToken: 'pk.eyJ1IjoiY2Fua2FkaXIiLCJhIjoiY2pteXplNnEzMHF3YTNrcGx0dGd4MmJrdiJ9.zbhQ39YIdfZufTljuTSl1w'
    }).addTo(map);


    // Style Object for the general Polygon Styline
    function style(data) {
        return {
            fillColor: '#ffe000', // Here is the categorical coloring.
            color: '#ffffff',
            weight: 0.15,
            opacity: 1,
            fillOpacity: 0.7
        };
    }

    // Polygons
    function generatePolygon(date, L) {
        
        api_path = apiRootUrl+`apis/${date}.geojson`;


        //Open 
        let geoJsonLayer = $.getJSON(api_path, function(data) {

            let geoJsonLayer = L.geoJSON(data, {
                style: style,
            }).addTo(map);

            //assign id = feature to polygons
            geoJsonLayer.eachLayer(function(layer) {
                layer._path.id = 'feature-select';
            });
            return geoJsonLayer;
        });
        return geoJsonLayer;
    };

    // Points
    function generatePts(data, L) {

        var geojsonMarkerOptions = {
            radius: 2.5,
            fillColor: "#ffffff",
            //color: "#000",
            weight: 0,
            opacity: 1,
            fillOpacity: 0.8
        };

        geoJsonPoints = L.geoJSON(data, {
            pointToLayer: function(feature, latlng) {
                return L.circleMarker(latlng, geojsonMarkerOptions);
            }
        }).addTo(map);

        return geoJsonPoints;

    }

    // Generate Tweeter
    function generateTws(data, L) {

        var div_circle = L.divIcon({
            className: 'circle',
        });

        data.forEach(function(d) {
            var marker = L.marker([d.lat, d.lon], {
                icon: div_circle
            }).addTo(map).on('click', onClick);


            //marker.bindPopup();
        });
    };

    function inserthtml(id, text) {
        document.getElementById(id).innerHTML = text;
        var scripts = Array.prototype.slice.call(document.getElementById(id).getElementsByTagName("script"));
        for (var i = 0; i < scripts.length; i++) {
            if (scripts[i].src != "") {
                var tag = document.createElement("script");
                tag.src = scripts[i].src;
                document.getElementsByTagName("head")[0].appendChild(tag);
                console.log("ust")
            } else {
                console.log('alt')
                eval(scripts[i].innerHTML);
            }
        }
    }

    function onClick() {
        //var x = event.pageX / window.innerHeight;
        //var y = event.pageY / window.innerWidth;

        //console.log([x, y]);
        mousePosition = {
            x: event.clientX,
            y: event.clientY
        }
        console.log([mousePosition.x, mousePosition.y]);

        var code = `<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><` + `/script> `;
        var text = `<blockquote class="twitter-tweet" data-dnt="true"><p lang="tr" dir="ltr">Marmara Denizi açıklarında seyir halindeyiz. Durum içler acısı, takdiri sizlere bırakıyorum. <a href="https://t.co/yJHr1UdX1x">pic.twitter.com/yJHr1UdX1x</a></p>— Kadircan Kosdere (@KKosdere) <a href="https://twitter.com/KKosdere/status/1402910422215401473?ref_src=twsrc%5Etfw">June 10, 2021</a></blockquote> ${code}`;

        inserthtml('popup', text);

        var popup = document.getElementById('popup');
        //popup.innerHTML = `<p>Here is some text</p>`;

        var posx = mousePosition.x - popup.offsetLeft - (document.getElementById('map').clientWidth / 2);
        var posy = mousePosition.y - popup.offsetTop;

        console.log(posy + popup.clientHeight)

        console.log([posx, posy]);
        popup.style.transform = `translate(${posx}px,${posy}px)`;

    }

    let noktalar = 'https://raw.githubusercontent.com/PrattSAVI/Musilaj/main/Data/Desarj_points.geojson';
    let twit_path = 'https://raw.githubusercontent.com/PrattSAVI/Musilaj/main/Data/tw/Tweets.json';
    let all_dates = 'https://raw.githubusercontent.com/PrattSAVI/Musilaj/main/apis/dates.txt';

    // ------------------- WORK WITH DATA STARTS HERE--------------------------

    // Get all dates
    $.get(all_dates, function(data) {
        unique_dates = data.split(",");

        //Insert  dates into dropdown
        unique_dates.forEach(function(d, i) {
            $('#date-selector').append(`<option value="${d}">${d}</option>`);
            $("#date-selector").prop("selectedIndex", unique_dates.length - 1); // Select first
        });

        //// Desarj Noktalari Add as Geojson Layer
        $.getJSON(noktalar, function(pts) {
            generatePts(pts, L);
        });

        //Create Initial  polygon
        let sdate = unique_dates[unique_dates.length - 1];
        let geoJsonLayer = generatePolygon(sdate, L);

        // Twitter starts here
        $.getJSON(twit_path, function(twit) {
            //console.log(twit);
            generateTws(twit, L);
        });

        // Create the filter -> Filter data based on dropdown.
        $('#date-selector').change(function() {

            $("#feature-select").remove();
            var feats = document.getElementById('feature-select')
            if (feats != null) {
                console.log(feats)
                feats.remove();
            }
            geoJsonLayer = generatePolygon($(this).val(), L);
        });

    });
</script>
[/av_codeblock]

[/av_cell_one_full]
[/av_layout_row]";}