1<!DOCTYPE html> 2<html lang="en" ng-app="event"> 3<head> 4 <meta charset="utf-8"> 5 <title>SeismicPortal - Home</title> 6 <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge" /> --> 7 <link rel="canonical" href="https://www.seismicportal.eu/"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <meta name="description" content="The Seismic Portal hosts multiple data API/web services that provide access to the European-Mediterranean Seismological Centre's (EMSC) datasets. The website both documents the available APIs and enables users to interactively explore the available data both via the home page and via individual event pages. Services include an FDSN event API for querying the EMSC catalogue and a service for matching earthquake IDs between different institutes (EventID), as well as services for downloading macroseismic felt reports, moment tensors and rupture models. The portal also provides links to other important European seismological institutes."> 10 <meta name="keywords" content="SeismicPortal, EMSC, CSEM, earthquake, earthquakes, quakes, earthquake catalogue, dataset, webservice, webservices, FDSN, EventID, Moment Tensor, Felt Reports, Testimonies, Rupture Models, SRCMOD, Flinn-Engdahl"> 11 <meta name="publisher" content="EMSC (European-Mediterranean Seismological Centre)"> 12 <meta name="author" content="EMSC"> 13 <meta name="author" content="Laurent Frobert"> 14 <meta name="author" content="Matthieu Landes"> 15 <meta name="author" content="Fred Roussel"> 16 <meta name="author" content="Robert Steed"> 17 <meta name="author" content="Guillaume Ucciani"> 18 19 <meta property="og:title" content="SeismicPortal" /> 20 <meta property="og:determiner" content="the" /> 21 <meta property="og:description" content="The SeismicPortal hosts multiple data API/web services for researchers wanting access the European-Mediterranean Seismological Centre's (EMSC) datasets. The website both documents the available APIs and enables users to interactively explore the available data." /> 22 <meta property="og:type" content="website" /> 23 <meta property="og:image" content="images/OGcard_seismicportal.png" /> 24 <meta property="og:locale" content="en_GB" /> 25 <meta property="og:url" content="https://www.seismicportal.eu/"> 26 <meta property="og:site_name" content="SeismicPortal.eu" /> 27 28 <meta name="dcterms.title" content="SeismicPortal" /> 29 <meta name="dcterms.language" content="en" /> 30 <meta name="dcterms.subject" content="SeismicPortal; EMSC; CSEM; Earthquake; Earthquakes; Earthquake catalogue; Dataset; Webservice; Webservices; FDSN; EventID; Moment Tensor; Felt Reports; Testimonies; Rupture Models; SRCMOD; Flinn-Engdahl; Documentation" /> 31 <meta name="dcterms.description" content="The Seismic Portal hosts multiple data API/web services that provide access to the European-Mediterranean Seismological Centre's (EMSC) datasets. The website both documents the available APIs and enables users to interactively explore the available data both via the home page and via individual event pages. Services include an FDSN event API for querying the EMSC catalogue and a service for matching earthquake IDs between different institutes (EventID), as well as services for downloading macroseismic felt reports, moment tensors and rupture models. The portal also provides links to other important European seismological institutes." /> 32 <meta name="dcterms.creator" content="EMSC" /> 33 <meta name="dcterms.publisher" content="EMSC (European Mediterranean Seismological Centre)" /> 34 <meta name="dcterms.rights" content="Copyright 2014-2026, EMSC, All rights reserved." /> 35 <meta name="dcterms.rights.rightsHolder" content="EMSC" /> 36 <meta name="dcterms.type" content="Service" /> 37 38 <!-- meta data for older processors --> 39 <meta name="dcterms.source" content="https://www.emsc-csem.org" /> 40 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/fdsn-wsevent.html" /> 41 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/feregions.html" /> 42 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/mtws/" /> 43 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/srcmodws/" /> 44 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/testimonies-ws/" /> 45 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/eventid/" /> 46 <meta name="dcterms.relation.hasPart" content="https://www.seismicportal.eu/realt
46ime.html" /> 47 <meta name="dcterms.accessRights" content="info:eu-repo/semantics/openAccess" /> 48 49 <!-- recommended modern format --> 50 <link rel="dcterms.source" href="https://www.emsc-csem.org" /> 51 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/fdsn-wsevent.html" /> 52 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/feregions.html" /> 53 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/mtws/" /> 54 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/srcmodws/" /> 55 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/testimonies-ws/" /> 56 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/eventid/" /> 57 <link rel="dcterms.relation.hasPart" href="https://www.seismicportal.eu/realtime.html" /> 58 <link rel="dcterms.accessRights" href="info:eu-repo/semantics/openAccess" /> 59 60 <meta name="citation_title" content="SeismicPortal fdsnws-event web service" /> 61 <meta name="citation_author" content="EMSC (European Mediterranean Seismological Centre)" /> 62 <meta name="citation_publisher" content="EMSC (European Mediterranean Seismological Centre)" /> 63 <meta name="citation_keywords" content="Seismicportal EMSC CSEM FDSN EventID Moment Tensor Felt Reports Testimonies Rupture Models SRCMOD Flinn-Engdahl webservice earthquakes earthquake catalogue documentation" /> 64 <meta name="creator" content="EMSC" /> 65 <meta name="title" content="SeismicPortal fdsnws-event web service" /> 66 67 <!-- Geo-INQUIRE sponsor (DataCite / DC style) --> 68 <meta name="dcterms.contributor" content="Geo-INQUIRE" /> 69 <meta name="dcterms.contributorType" content="Sponsor" /> 70 <link rel="dcterms.relation" href="https://doi.org/10.3030/101058518" /> 71 72 <link rel="stylesheet" href="css/leaflet-0.6.2.css" /> 73 <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.no-icons.min.css" rel="stylesheet"> 74 <link href="//netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" rel="stylesheet"> 75 <link href="css/eventdetail_style.css" rel="stylesheet"> 76 <link href="css/smoothness/jquery-ui-1.10.4.custom.css" rel="stylesheet"> 77 <link rel="stylesheet" href="css/Leaflet.Coordinates-0.1.2.css"/> 78 <link rel="stylesheet" href="css/Control.MiniMap.css" /> 79 <link rel="stylesheet" href="css/leaflet.label.css" /> 80 81 <link rel="stylesheet" href="css/filtersgui.css" /> 82 83
83<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
83 84
84<script src="js/jquery-ui-1.10.4.custom.min.js "></script>
84 85
85<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
85 86 87
87<script type="text/javascript" src="js/leaflet-0.6.2.js"></script>
87 88
88<script type="text/javascript" src="js/Leaflet.Coordinates-0.1.2.min.js"></script>
88 89
89<script type="text/javascript" src="js/Control.MiniMap.js" ></script>
89 90
90<script type="text/javascript" src="js/leaflet.label.js" ></script>
90 91
91<script type="text/javascript" src="js/leaflet.utfgrid.js"></script>
91 92
92<script type="text/javascript" src="js/L.TileLayer.BetterWMS.js"></script>
92 93 94
94<script src="js/angular-1.2.11.min.js"></script>
94 95
95<script src="js/angular-resource-1.2.11.min.js"></script>
95 96 97 <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> 98 <!--[if lt IE 9]> 99
99<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
99 100 <![endif]--> 101 <style> 102 .noblur { 103 max-width:400px; 104 max-height:200px; 105 } 106 .modal.large { 107 width: 80%; /* respsonsive width */ 108 margin-left:-40%; /* width/2) */ 109 height:80% 110 } 111 .scrollable { 112 height: 100%; 113 overflow: auto; 114 } 115 .max-height { 116 height: 100%; 117 max-height:80%; 118 } 119 .no-overflow { 120 overflow: hidden; 121 } 122 </style> 123</head> 124<body ng-controller="EventTableCtrl"> 125 <header id="top"> 126 <ng-include src="'header.html'"></ng-include> 127 </header> 128 129 130 131<div class="container-fluid"> 132 <div class="mapbox"> 133 <div class="row-fluid some" id="globalmap"> 134 </div> 135 <div class="row-fluid overlay asd"> 136 <div class='span6 decal50' ng-show="currentEvent!=null"> <!-- offset2 --> 137 <span class="titre">{{currentEvent.magtype}} {{currentEvent.mag}} - {{currentEvent.region}}</span><br/> 138 <span class="soustitre">{{currentEvent.datetime2}}, {{currentEvent.depth}}Km</span><br/> <!-- 29 October 1989 at 19:09:13.4 UTC --> 139 <span class="soustitre2" >unid is {{currentEvent.unid}}</span></br> 140 </div> 141 </div> 142 <div class="row-fluid overlay"> 143 <div id="filtersgui" style="background:rgba(0,0,0,0.8);right:0;position:absolute;pointer-events: auto;" class="form-inline"> 144 <!-- filtres--> 145 <ul class="nav nav-list tree"> 146 <li activate-treemenu><label class="tree-toggler nav-header">Filters<label class="pull-right" style="font-size: 11px; " ng-click="openLayersManagement();$event.stopPropagation();">Layers</label></label> 147 <ul class="nav nav-list tree"> 148 <li><label class="tree-toggler nav-header">Events Layer</label> 149 <ul class="nav nav-list tree"> 150 151 <li><label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Magnitude</label> 152 <ul class="nav nav-list tree hide"> 153 <li><label for="minmag">Min</label><input type="text" class="input-small" placeholder="minimum mag" ng-model="filter.min.mag"></li> 154 <li><label for="maxmag">Max</label><input type="text" class="input-small" placeholder="maximun mag" ng-model="filter.max.mag"></li> 155 <li><label for="magtype">Magtype</label> 156 <select class="input-small" ng-model="filter.magtype"> 157 <option value=""></option> 158 <option value="ml">ml</option> 159 <option value="md">Md</option> 160 <option value="mw">Mw</option> 161 </select> 162 </li> 163 </ul> 164 </li> 165 <li><label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Depth (Km)</label> 166 <ul class="nav nav-list tree hide"> 167 <li><label for="mindepth">Min</label><input type="text" class="input-small" placeholder="minimum depth" ng-model="filter.min.depth"></li> 168 <li><label for="maxdepth">Max</label><input type="text" class="input-small" placeholder="maximun depth" ng-model="filter.max.depth"></li> 169 </ul> 170 </li> 171 <li><label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Date</label> 172 <ul class="nav nav-list tree hide"> 173 <li><label for="mindate">From</label><input type="text" class="input-small" placeholder="yyyy-mm-dd" ng-model="filter.min.datetime"></li> 174 <li><label for="maxdate">To</label><input type="text" class="input-small" placeholder="yyyy-mm-dd" ng-model="filter.max.datetime"></li> 175 <li><label for="dateperiod">Period</label> 176 <select class="input-small" ng-model="filter.dateperiod"> 177 <option value=""></option> 178 <option value="day">last day</option> 179 <option value="week">last week</option> 180 <option value="month">last month</option> 181 <option value="year">last year</option> 182 </select> 183 </li> 184 </ul> 185 </li> 186 <li><label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Region</label> 187 <ul class="nav nav-list tree hide"> 188 <li ><label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Bounding Box</label> 189 <ul class="nav nav-list tree hide"> 190 <li><label for="westbbox">West</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.min.lon"></li> 191 <li><label for="southbbox">South</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.min.lat"></li> 192 <li><label for="eastbbox">East</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.max.lon"></li> 193 <li><label for="northbbox">North</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.max.lat"></li> 194 </ul> 195 </li> 196 <li >
196<label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Circle</label> 197 <ul class="nav nav-list tree hide"> 198 <li><label for="centery">Center lat</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.centery"></li> 199 <li><label for="centerx">Center lon</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.centerx"></li> 200 <li><label for="minradius">Min radius</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.minradius"></li> 201 <li><label for="maxradius">Max radius</label><input type="text" class="input-small" placeholder="in degree" ng-model="filter.maxradius"></li> 202 </ul> 203 </li> 204 </ul> 205 </li> 206 <li><label class="tree-toggler nav-header"><b class="icon-caret-right"></b> Misc</label> 207 <ul class="nav nav-list tree hide"> 208 <li><label for="contributor">Contributor</label><input type="text" class="input-small" placeholder="network" ng-model="filter.contributor"></li> 209 </ul> 210 </li> 211 212 </ul> 213 214 215 </li> 216 217 218 219 <li ng-show="isLayerHazardAdded"><label class="tree-toggler nav-header">Hazard Layer</label> 220 <ul class="nav nav-list tree" style="padding-left:0px"> 221 <li><label for="p1" style="width:130px;font: 9px 'Dosis', sans-serif;">Intensity Measure Type</label> 222 <select class="input-small" ng-model="hazard.imtindex" ng-change="reload_hazard_poe()"> 223 <option value="-1"></option> 224 <option ng-repeat="v in hazard.imt" value="{{$index}}">{{v.name}}</option> 225 </select> 226 </li> 227 <li><label for="p2" style="width:130px;font: 9px 'Dosis', sans-serif;">Probability of Exceedance</label> 228 <select class="input-small" ng-model="hazard.poeindex" ng-change="reload_hazard_site_class()"> 229 <option value="-1"></option> 230 <option ng-repeat="v in hazard.poe" value="{{$index}}">{{v.hmapexceedprob * 100}}% in {{v.hmapexceedyears}} years</option> 231 </select> 232 </li> 233 <li><label for="p2" style="width:130px;font: 9px 'Dosis', sans-serif;">Site class</label> 234 <select class="input-small" ng-model="hazard.siteindex" ng-change="reload_hazard_aggregation_level()"> 235 <option value="-1"></option> 236 <option ng-repeat="v in hazard.site" value="{{$index}}">{{v.type}}</option> 237 </select> 238 </li> 239 <li><label for="p2" style="width:130px;font: 9px 'Dosis', sans-serif;">Aggregation Level</label> 240 <select class="input-small" ng-model="hazard.aggregationindex" ng-change="reload_hazard_getmap()"> 241 <option value="-1"></option> 242 <option ng-repeat="v in hazard.aggregation" value="{{$index}}">{{getHazardAggregationText($index)}}</option> 243 </select> 244 </li> 245 246 </ul> 247 </li> 248 <li > 249 <button id="searchButton" class="btn btn-success btn-mini" ng-click="doSearchWithClearedSelection()"><i class="icon-search"></i> Apply</button> 250 251 <button id="clearButton" class="btn btn-danger btn-mini" ng-click="razFilter()"><i class="icon-remove-sign"></i> Clear</button> 252 253 </li> 254 </ul> 255 </li> 256 257 </ul> 258 <!-- filtres --> 259 </div> 260 </div> 261 </div> 262</div> 263 264 265 266 267<div class='row'> 268 269 <div class='span2'> 270 <div> 271 <div data-spy="affix" data-offset-top="390"> 272 <ul class="" id='side-nav' style='list-style: none; font-size: 14px; margin-top: 10px;'> 273 <li><a ng-click="scrollTo('#top')"><i class="icon-sitemap"></i>Map</a></li> 274 <li><a ng-click="scrollTo('#eventsListSection')"><i class="icon-th-large"></i>Events list</a></li> 275 <li><a ng-click="scrollTo('#otherServicesSection')"><i class="icon-th-large"></i>Other Services</a></li> 276 </ul> 277 <br/> 278 <ul style='list-style: none; font-size: 14px; margin-top: 10px;'> 279 <li><a ng-click="scrollTo('#broadband_waveform')">Broadband Waveform<br/><div style="width:100px"><img class="noblur" src="images/other_services/eida_broadband.png" style="vertical-align: top;"/></div></a></li> 280 <li><a ng-click="scrollTo('#verce_platform')">Verce Platform<br/><div style="width:100px"><img class="noblur" src="images/other_services/verce-seismicp_100px.png" style="vertical-align: top;"/></div></a></li> 281 <li><a ng-click="scrollTo('#hazard_portal')">Hazard Portal<br/><div style="width:100px"><img class="noblur" src="images/other_services/hazard-map.png" style="vertical-align: top;"/></div></a></li> 282 <!-- <li><a ng-click="scrollTo('#osap_portal')">Osap Portal<br/><div style="width:100px"><img class="noblur" src="images/other_services/osap_100px.png" style="vertical-align: top;"/></div></a></li> --> 283 <li><a ng-click="scrollTo('#historical_data')">Historical Data<br/><div style="width:100px"><img class="noblur" src="images/other_services/historical_data.png" style="vertical-align: top;"/></div></a></li> 284 </ul> 285 </div> 286 </div> 287 </div> 288 289<div class='span10' id='resource-list'> 290 291 <section id='eventsListSection'> 292 <h1 class='span12 resource-category'>{{totalcount}} events found <span class="hide" id="waitMessage"><img src="css/images/wait.gif"> Loading data </span> <span class="pull-right"><span style="font-size:20px"><span class="badge" ng-class="(getSelectedCount() <=2000 )? 'badge-success':'badge-important' ">{{getSelectedCount()}}</span> selected events (2000 max)</span> <button ng-show="getSelectedCount()>0 && getSelectedCount() <= 2000" class="btn" ng-click="downloadSelection()"><i class="icon-download"></i> Download</button></span></h1>
293 <div class="row span12" id="searchbar"> 294 <div class="pagination pull-left pagination-small"> <!-- --> 295 <select ng-model='limit' ng-change="doSearch(1)"> 296 <option value='5'>Show 5 per page</option> 297 <option value='10'>Show 10 per page</option> 298 <option value='20'>Show 20 per page</option> 299 <option value='50'>Show 50 per page</option> 300 <option value='100'>Show 100 per page</option> 301 </select> 302 </div> 303 <div class="pagination pull-right pagination-small"> <!-- --> 304 <ul> 305 <li ng-class="{disabled: currentPage == 1}"> 306 <a href="#" ng-click="setPage(1)">First</a> 307 </li> 308 <li ng-class="{disabled: currentPage == 1}"> 309 <a href="#" ng-click="setPage(currentPage-1)">« Prev</a> 310 </li> 311 <li ng-repeat="n in pagerange()" 312 ng-class="{active: n == currentPage}"> 313 <a href="#" ng-click="setPage(n)">{{n}}</a> 314 </li> 315 <li ng-class="{disabled: currentPage == noOfPages }" > 316 <a href="#" ng-click="setPage(currentPage+1)" >Next »</a> 317 </li> 318 <li ng-class="{disabled: currentPage == noOfPages }"> 319 <a href="#" ng-click="setPage(noOfPages)">Last</a> 320 </li> 321 </ul> 322 </div> 323 </div> <!-- id="searchbar" --> 324 325<div class="row span12"> 326<table class="font-size-small table table-condensed table-striped table-bordered table-hover"> <!-- table-bordered --> 327 <thead> 328 <tr> 329 <th><input type="checkbox" ng-checked="isSelectAll" ng-click="selectAll()"/></th> 330 <th ng-click="sortBy('magnitude')">Mag <i id="orderbymagnitude"></i></th> 331 <th ng-click="sortBy('time')">Datetime (UTC) <i id="orderbytime" class="icon-chevron-down"></i></th> 332 <th>Lat</th> 333 <th>Lon</th> 334 <th>Region</th> 335 <th>Depth(Km)</th> 336 <th>Auth</th> 337 </tr> 338 339 </thead> 340 <tbody> 341 <tr ng-repeat="event in events" class="{{event.properties.mag | magToRowClass}}" > 342 <td><input type="checkbox" ng-checked="(isSelectAll && selectedEvents.indexOf(event.properties.unid) < 0) || (!isSelectAll && selectedEvents.indexOf(event.properties.unid) >= 0)" model="selectedEvents[]" ng-click="selectEvent(event)" value="{{event.properties.unid}}"/></td> 343 <td ng-click="showEventDetail(event)"><span class="label label-{{event.properties.mag | magToLabelClass}}">{{event.properties.magtype}} {{event.properties.mag | number:1}}</span></td> <!-- magWithZero --> 344 <td ng-click="showEventDetail(event)">{{event.properties.time}}</td> 345 <td ng-click="showEventDetail(event)">{{event.properties.lat}}</td> 346 <td ng-click="showEventDetail(event)">{{event.properties.lon}}</td> 347 <td ng-click="showEventDetail(event)"><b>{{event.properties.flynn_region}}</b></td> 348 <td ng-click="showEventDetail(event)">{{event.properties.depth}}</td> 349 <td ng-click="showEventDetail(event)">{{event.properties.auth}}</td> 350 </tr> 351 352 </tbody> 353 <tfoot> 354 <tr> 355 <th></th> 356 <th>Mag</th> 357 <th>Datetime (UTC)</th> 358 <th>Lat</th> 359 <th>Lon</th> 360 <th>Region</th> 361 <th>Depth(Km)</th> 362 <th>Auth</th> 363 </tr> 364 </tfoot> 365 </table> 366</section> 367<hr/> 368<section id="otherServicesSection"> 369<h1 class='resource-category'>Other SeismicPortal Services</h1> 370 371</section> <!-- section other services --> 372 373<hr/> 374 375<section id="broadband_waveform"> 376 <h1 class='resource-category'>Broadband Waveform</h1> 377 <div class="row span12"> 378 <!-- <div class="span4"><a href="http://145.23.252.222/eida/webdc3/" target="_blank"><img src="images/other_services/eida_broadband_300px.png"/></a></div><div class="span7"><h2>The Waveform Explorer portlet allows the users to search and request broadband seismic data from the whole EIDA network, which offers continuous data coming from c.a. 1000 stations, which are stored in several Data Centers In EU.</h2></div> --> 379 <div class="span4"><a href="https://www.orfeus-eu.org/data/eida/" target="_blank"><img src="images/other_services/eida_broadband_300px.png"/></a></div><div class="span7"><h2>The Waveform Explorer portlet allows the users to search and request broadband seismic data from the whole EIDA network, which offers continuous data coming from c.a. 1000 stations, which are stored in several Data Centers In EU.</h2></div> 380 381 </div> 382 <br/> 383 <hr/> 384</section> <!-- section broadband_waveform --> 385 386<hr/> 387<section id="verce_platform"> 388 <h1 class='resource-category'>Verce Platform</h1>
389 <div class="row span12"> 390 <div class="span4"><a href="http://portal.verce.eu/" target="_blank"><img src="images/other_services/verce-seismicp_300px.png"/></a></div><div class="span7"><h2>The objective of VERCE is to provide a data-intensive e-science environment enabling transformative methods that can fully exploit the increasing wealth of data generated by observational and monitoring systems, and guarantee optimal operation and design of these high-cost systems.</h2></div> 391 </div> 392<br/> 393</section> 394 395<section id="hazard_portal"> 396 <h1 class='resource-category'>Hazard Portal</h1> 397 <div class="row span12"> 398 <div class="span4"><a href="http://www.efehr.org/" target="_blank"><img src="images/other_services/hazard-map_300px.png"/></a></div><div class="span7"><h2>The Seismic Hazard Portal currently provides access to input data and time-independent hazard results produced within the EU-FP7 project "Seismic Hazard Harmonization in Europe".</h2></div> 399 </div> 400</section> <!-- section hazard_portal --> 401 402<!-- OSAP doesn't exist anymore 403<section id="osap_portal"> 404 <h1 class='resource-category'>Osap Portal</h1> 405 <div class="row span12"> 406 <div class="span4"><a href="http://osap.faw.at/" target="_blank"><img src="images/other_services/osap_300px.png"/></a></div><div class="span7"><h2>OSAP is a crowd-sourced community portal to assess civil buildings. The main idea behind OSAP is, to motivate people like you to collect data of buildings, like the one you live in, and add it to our database.</h2></div> 407 </div> 408</section> section hazard_portal --> 409 410<section id="historical_data"> 411 <h1 class='resource-category'>Historical Data</h1> 412 <div class="row span12"> 413 <div class="span4"><a href="http://www.emidius.eu/AHEAD/index.php" target="_blank"><img src="images/other_services/historical_data_300px.png"/></a></div><div class="span7"><h2>AHEAD, the European Archive of Historical Earthquake Data 1000-1899, is a distributed archive aiming at preserving, inventorying and making available, to investigators and other users, data sources on the earthquake history of Europe, such as papers, reports, Macroseismic Data Points (MDPs), parametric catalogues, and so on.</h2></div> 414 </div> 415</section> <!-- section hazard_portal --> 416 417 </div> 418</div> 419 420 421 <footer class="bg-color dark-grey"> 422 <div class="container"> 423 <div class="row"> 424 <div class="span6"> 425 Copyright © 2018 <a target="_blank" href="https://www.emsc-csem.org">EMSC</a> <a target="_blank" href="terms.html">Terms of Use and Disclaimers</a> 426 </div> 427 </div> 428 </div> 429 </footer> 430 431<style> 432 #newLayerModal label.tree-toggler { 433 width:100%; 434 background:white; 435 } 436</style>
437<script type="text/ng-template" id="layer_renderer.html"> 438 <div ng-if="layer.layer"> 439 <label class="tree-toggler" ng-click="setCurrentGroupLayer(capa,layer)">{{layer.title}}</label> 440 <!-- <center><div style="width:400px;height:200px;"><img class="noblur" ng-src="{{getmapurl(currentCapa,data,400,200)}}" style="vertical-align: top;"/></center> --> 441 442 <ul class="tree nav nav-list" > 443 <li ng-repeat="layer in layer.layer" > 444 <ng-include src="'layer_renderer.html'"/> 445 </li> 446 </ul> 447 </div> 448</script>
448 449 450 451 452 453<div id="newLayerModal" class="modal hide fade large" tabindex="-1" role="dialog" aria-labelledby="newLayerModalLabel" aria-hidden="true"> 454 <div class="modal-header"><span>Choose a Maps Server :</span></div> 455 <div class="no-overflow max-height"> 456 <div style="height:100%"> 457 <div class="scrollable" style="width:30%;float:left"> 458 <ul class="nav"> 459 <li ng-repeat="capa in capabilities"><label ng-click="setCurrentCapacities(capa,$index)"><img src="images/logo_layers.png"/>{{capa.title}}</label> 460 <ul class="nav nav-list tree hide" id="capaLayers{{$index}}" > 461 <li ng-repeat="layer in capa.layer" > 462 <ng-include src="'layer_renderer.html'"/> 463 </li> 464 </ul> 465 </li> 466 <li><label ng-click="showAddMapsServer()"><i class="icon-plus"></i> Add a maps server</label> 467 </li> 468 </ul> 469 </div> 470 471 <div ng-show="isAddMapsServerShown" class="scrollable" style="width:70%;float:right"> 472 <label>Enter WMS Server URL for the GetCapabilities request : </label><input ng-model="wmsurl" type="text" class="input-xxlarge"/><a class="btn" ng-click="loadNewCapabilities()">Load </a> 473 474 <span ng-show="isWaitingForCapa"><img src="css/images/wait.gif"> Loading capabilites from the foreign server</span> 475 476 <div ng-show="loadingCapaError!=null" class="alert alert-block"> 477 <h4>Warning!</h4> 478 {{loadingCapaError}} 479 </div> 480 481 <pre>hints : you can find WMS servers using http://www.eurogeoss-broker.eu/</pre> 482 <pre>If a WMS Server can be usefull for a large community of users, 483you can ask us to add it permanently into this user interface. 484send an email to : laurent[dot]frobert[at]emsc-csem.org</pre> 485 </div> 486 487 <div ng-show="!isAddMapsServerShown" class="scrollable" style="width:70%;float:right"> 488 <div style="background:gray"> 489 <h1 style="color:white">{{currentCapa.title}}</h1><br/> 490 <span>{{currentCapa.abstract}}</span><br/> 491 <div ng-show="currentCapa.constraints!=null" style="width:80%" class="alert alert-warning"> 492 <span ng-show="currentCapa.constraints.fees!=null">Fees : {{currentCapa.constraints.fees}}, </span> 493 <span ng-show="currentCapa.constraints.access!=null">Access constraint : {{currentCapa.constraints.access}}</span> 494 </div> 495 496 <div ng-if="currentCapa.contact!=null" style="width:80%" class="alert alert-success"> 497 <h3>Contact:</h3> 498 <span>{{currentCapa.contact.organization}}, {{currentCapa.contact.person}} ({{currentCapa.contact.position}})</span><br/> 499 <span>Phone: {{currentCapa.contact.phone}}, Fax: {{currentCapa.contact.fax}}, Email:{{currentCapa.contact.email}}</span><br/> 500 <span>Type of address : {{currentCapa.contact.addressType}}</span><br/> 501 <span>{{currentCapa.contact.address}}</span><br/> 502 <span>{{currentCapa.contact.stateOrProvince}}</span><br/> 503 <span>{{currentCapa.contact.postCode}}</span> <span>{{currentCapa.contact.city}}</span><br/> 504 <span>{{currentCapa.contact.country}}</span> 505 506 </div> 507 508 <span ng-repeat="keyword in currentCapa.keywords" class="label" style="margin-right:5px">{{keyword}}</span> 509 </div> 510 511 <table ng-if="currentGroupLayer!=null" > 512 <tr> 513 <td class="moduletable_service" > 514 <h2>{{currentGroupLayer.title}}</h2> 515 <h3 ng-show="currentGroupLayer.name!=null">({{currentGroupLayer.name}})</h3> 516 <div style="text-align:justify;"> <!-- width:600px --> 517 <div ng-if="currentGroupLayer.name != null" class="floated" style="margin:5px;border: 1px solid black;width:400px;height:200px;border:1"> 518 <center><img class="noblur" ng-src="{{getmapurl(currentCapa,currentGroupLayer,800,400)}}" style="vertical-align: top;"/></center> 519 </div> 520 {{currentGroupLayer.abstract}} 521 <a ng-show="!isLayerInLayersStack2(currentGroupLayer)" ng-if="currentGroupLayer.name != null" href="" class="btn" ng-click="addThisLayer(currentGroupLayer)"><i class="icon-plus"></i>Add this layer</a> 522 <a href="" disabled ng-show="isLayerInLayersStack2(currentGroupLayer)" class="btn" ><i class="icon-plus"></i>Added</a> 523 </div> 524 </td> 525 </tr> 526 <tr ng-repeat="layerG in currentGroupLayer.layer"> 527 <td class="moduletable_service" ng-if="layerG.name != null"> 528 <div > 529 <h2>{{layerG.title}}</h2> 530 <h3 ng-show="layerG.name != null">({{layerG.name}})</h3> 531 <div style="text-align:justify;"> <!-- width:600px --> 532 <div class="floated" style="margin:5px;border: 1px solid black;width:400px;height:200px;"><center><img class="noblur" ng-src="{{getmapurl(currentCapa,layerG,800,400)}}" style="vertical-align: top;"/></center></div> 533 {{layerG.abstract}} 534 <a href="" ng-show="!isLayerInLayersStack2(layerG)" class="btn" ng-click="addThisLayer(layerG)"><i class="icon-plus"></i>Add this layer</a> 535 <a href="" disabled ng-show="isLayerInLayersStack2(layerG)" class="btn" ><i class="icon-plus"></i>Added</a> 536 </div> 537 </div> 538 </td> 539 </tr> 540 </table>
541 </div> 542 </div> 543 </div> 544 <div class="modal-footer"> 545 <a href="#" ng-click="closeNewLayerModal()" class="btn btn-primary"><i class="icon-ok"></i> Valid</a> 546 </div> 547</div> 548 549 550<style> 551 552 td.moduletable_service { 553 border-bottom: 5px solid white; 554 background-color: lightgray; 555 padding: 5px 0px 10px 0px; 556 text-align: center; 557 /*color:darkgray;*/ 558 /* width:400px; */ 559 white-space:normal; 560 height:100%; 561 562 } 563 564 td.moduletable_service p { 565 text-align:justify; 566 } 567 568 .floated{ 569 float: left; 570 width: 400px; 571} 572 573</style> 574 575 576<div id="layersModal" class="modal hide fade large" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 577 <div class="modal-header"><span>Layers Management</span></div> 578 <div class="no-overflow max-height" id="layersModalContent"> 579 <div style="height:100%"> 580 <div class="scrollable" style="width:50%;float:left"> 581 <table id="{{layer.capabilitiesLayer.name}}" ng-repeat="layer in layersStack" on-finish-render-layers class="font-size-small table table-condensed table-striped table-bordered"> 582 <tr> 583 <td colspan="2"><center><strong>layer "{{layer.capabilitiesLayer.name}}":</strong> {{layer.capabilitiesLayer.title}}</center></td> 584 </tr> 585 <tr> 586 <td colspan="2"> 587 <center><img class="noblur" style="opacity:{{layer.opacity/100}}" ng-click="zoomLegend(layer)" ng-src="{{getmapurl(layer.capabilities,layer.capabilitiesLayer,800,400)}}" style="vertical-align: top;"/></center> 588 </td> 589 </tr> 590 <tr> 591 <td> 592 <div class="btn-group btn-group-horizontal"> 593 <button type="button" class="btn btn-small" ng-disabled="$first" ng-click="moveUpLayer(layer,$index)" ><i class="icon-circle-arrow-up"></i> Move up</button> 594 <button type="button" class="btn btn-small" ng-disabled="$last" ng-click="moveDownLayer(layer,$index)" >Move Down <i class="icon-circle-arrow-down"></i></button> 595 </div> 596 <button type="button" class="btn btn-small" ng-click="removeLayer(layer,$index)" ><i class="icon-remove-sign"></i> Remove layer</button> 597 </td> 598 <td> 599 <table class="font-size-small table table-condensed table-striped table-bordered" style="margin-bottom: 0px"> 600 <tr> 601 <td><span class="incline">Opacity: </span></td><td><div class="incline" id="opacity_slider_{{$index}}" style="width:100px"></div></td><td><span class="incline">{{layer.opacity}}%</span></td> 602 </tr> 603 </table> 604 605 </td> 606 </tr> 607 <tr> 608 <td colspan="2"><small>{{layer.capabilitiesLayer.abstract}}</small></td> 609 </tr> 610 </table> 611 </div> 612 <div class="scrollable" style="width:50%;float:right" id="legends" > 613 614 <table ng-repeat="layer in layersStack" id="legendZoomed_{{layer.capabilitiesLayer.name}}" class="font-size-small table table-condensed table-striped table-bordered"> 615 <tr> 616 <td>Legend of layer : {{layer.capabilitiesLayer.name}} </td> 617 </tr> 618 <tr> 619 <td> 620 <img ng-src="{{getlegendurl(layer.capabilitiesLayer)}}"/> 621 </td> 622 </tr> 623 </table> 624 625 </div> 626 </div> <!-- row --> 627 </div> 628 <div class="modal-footer"> 629 <a href="#" ng-click="closeLayersManagement()" class="btn pull-left"><i class="icon-remove"></i> Cancel</a> 630 <a href="#" ng-click="openNewLayerModal()" class="btn"><i class="icon-plus"></i> Add Layer</a> 631 <a href="#" ng-click="validLayersManagement()" class="btn btn-primary"><i class="icon-ok"></i> Valid</a> 632 </div> 633 634</div> 635 636<div id="downloadModal" class="modal hide fade" style="width:600px" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 637 638 <div class="modal-header"><span>Choose your output file format</span></div> 639 <div class="modal-body"> 640 <center> 641 <div class="btn-group btn-group-xs"> 642 <button type="button" ng-class="(output_format=='xml-gz') ? 'btn-inverse' : ''" class="btn btn-default littebutton" ng-click="output_format='xml-gz'" ><img src="images/xml_file.png"/><br/>Quakeml</button> 643 <button type="button" ng-class="(output_format=='json-gz') ? 'btn-inverse' : ''" class="btn btn-default littebutton" ng-click="output_format='json-gz'"><img src="images/json_file.png"/><br/>GeoJson</button> 644 <button type="button" ng-class="(output_format=='text-gz') ? 'btn-inverse' : ''" class="btn btn-default littebutton" ng-click="output_format='text-gz'"><img src="images/txt_file.png"/><br/>Text</button> 645 <button type="button" ng-class="(output_format=='verce') ? 'btn-inverse' : ''" class="btn btn-default littebutton" ng-click="output_format='verce'"><img src="images/verce.png"/><br/>Verce</button> 646 </div> 647 </center> 648 <br/> 649 <div ng-show="output_format=='xml-gz'"> 650 <pre >QuakeML is a flexible, extensible and modular XML representation of seismological data which is intended to cover a broad range of fields of application in modern seismology. See more at <a href="https://quake.ethz.ch/quakeml/" target="_blank">https://quake.ethz.ch/quakeml</a></pre> 651 </div> 652 653 <div ng-show="output_format=='json-gz'"> 654 <pre >GeoJSON is a format for encoding a variety of geographic data structures. A GeoJSON object may represent a geometry, a feature, or a collection of features. See more at <a href="http://geojson.org/" target="_blank">http://geojson.org</a></pre> 655 </div> 656 657 <div ng-show="output_format=='text-gz'"> 658 <pre >Text format returns your selection events basic informations separated by the filter character (|)</pre> 659 </div> 660 661 <div ng-show="output_format=='xml-gz' || output_format=='json-gz'"> 662 <pre><input type="checkbox" ng-model="includeallorigins"/> include all origins <input type="checkbox" ng-model="includearrivals"/> include arrivals</pre> 663 </div> 664 665 <!-- 666 <div class="alert alert-warning" ng-show="getSelectedCount()>100 && output_format!='verce' && output_format!=null"> 667 Your requests contains more than 100 events, we need to package it.<br/>To be notified when ready, give us your email : <input type="text" class="form-control" ng-model="email"> 668 </div> 669 --> 670 671 <div ng-show="output_format=='verce'"> 672 <pre>VERCE is developing a data-intensive e-science environment to enable innovative data analysis and data modelling methods. See more at <a href="http://portal.verce.eu/" target="_blank">http://portal.verce.eu/</a></pre> 673 <div class="alert alert-warning"> 674 <pre ng-show="verce_error_message!=null" class="alert alert-error">{{verce_error_message}}</pre> 675 Upload your selected data directly to your VERCE's account<br/> 676 <div class="input-group input-group-sm"> 677 <span class="input-group-addon">verce's login</span> 678 <input type="text" class="form-control" ng-model="verce_email" placeholder="email"> 679 </div> 680 <div class="input-group input-group-sm"> 681 <span class="input-group-addon">password</span> 682 <input type="password" class="form-control" ng-model="verce_password" placeholder="password"> 683 </div>
684 </div> 685 </div> 686 </div> 687 688 <div class="modal-footer"> 689 <span class="pull-left" style="font-size: 9px;">Icons by <a href="http://dryicons.com" target="_blank">http://dryicons.com</a><br/><a href="http://openclipart.org/detail/20931/mainframe-by-kattekrab" target="_blank">http://openclipart.org</a></span> 690 <button class="btn" data-dismiss="modal" aria-hidden="true" ng-click="output_format=null">Cancel</button> 691 <a href="#" class="btn btn-primary" ng-class="(output_format==null) ? 'disabled' : ''" ng-disabled="output_format==null" ng-click="doDownload()">Download</a> 692 </div> 693 </div> <!-- modal --> 694
694<script src="js/map.js"></script>
694 695
695<script src="js/event.js"></script>
695 696 697</body> 698</html> 699 700
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.