PageSourceSearch

https://seismicportal.eu/

html seismicportal.eu collected 2026-10-02 16:15:38 UTC 38,464 bytes, 700 lines download raw bytes

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)">&#171; 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 &#187;</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 &copy; 2018 <a target="_blank" href="https://www.emsc-csem.org">EMSC</a> &nbsp;&nbsp; <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.