{'fraction_non_alphanumeric': 0.02824346775411569, 'fraction_numerical': 0.004228968433771334, 'mean_word_length': 5.1441385709867, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Software tools for web mapping systems

Technologies and software components developed for geoinformation web systems and geoportal services are considered. The program and user interfaces, implementation features, the general architecture of the projected systems are discussed. In particular, we consider a subsystem for visualizing the web map data, a CSW directory service, a style editor for geoportal maps and layers. Examples of completed developments and experience of implementation are given.


Introduction
Development of geoportals and their various components, i.e. cartographic web interfaces, distributed storage systems for spatial data, associated metadata management systems -are one of the modern trends in the development of geoinformation technologies [1,2]. The need to create a similar class systems is caused by the large number of distributed information resources having different formats, requiring different conditions for maintenance and access; all these factors complicate greatly their search, classification, and distribution [3,4].
The geoportal of the Institute of Computational Modeling of the Siberian Branch of the Russian Academy of Sciences (ICM SB RAS) is the unity of software tools, a set of software, technology and information and computing support, focused on the rapid development of the applied geoinformation web systems. Created in the first edition about 10 years ago, it is constantly developing, getting improved in the framework of the basic fundamental and applied research, with partial support of integration projects of the SB RAS and various scientific foundations, in the implementation of commercial custom information systems. It has successfully proved itself as a software and technological basis for resource-intensive information and analytical systems of the regional level for tasks of various subjects, ex. sectoral management informational support (in the sphere of health and education), environmental monitoring and the state of the environment assessment, forecast of the region's social and economic development, centralized information support with cartographic data, and so on [5,6].
The wide range of tasks performed by this system, which are related to processing of large volumes of cartographic information and provision of tools for information interaction between users, requires the system components not only to have a developed functional part, but also effective and highquality user interfaces [7].
This scientific work represents a number of software and technology solutions implemented for the geoportal recently.

Geoportal system architecture
From a technological point of view, the geoportal includes the following components [8,9]: • a repository of information (thematic) resources, i.e. file server with geospatial data in popular GIS formats, geospatial data bases, etc., • a catalogue of the registered resources, i.e. database of metadata of all information resources of the created system, as well as a set of software libraries (APIs) for various processing operations, • an administration system to register resources in a directory, to manage the access rights, to enter and edit data and metadata, to set up classifiers, etc., • an editor of style design, i.e. a specialized software for thematic coloring of layers and maps, etc.
Within the framework of the objective aimed at geoportal creation, the ICM SB RAS identified the task of designing and developing software tools and technological solutions, based on the web services of the ICM SB RAS geoportal and designed to administer the geoportal, including creation and edition of thematic style of individual layers and maps, as a composition of individual geospatial data layers [10].
The general characteristics of the developed toolkit functionality: • connection to a geo-information web server, getting the list of cartographic resources, • thematic design of the geospatial data layers available on the portal, • saving styles in the portal database, • formation of maps from individual geospatial data layers, • creation of new cartographic resources, • automation of thematic design, • management of publications, • editing the metainformation of the resources available on the portal.
A generalized scheme of geospatial information processing, which is implemented on the geoportal, is shown in Figure 1.

Subsystem for web map data visualization
The generated map of a geo-information web monitoring system can contain a set of raster and vector thematic geospatial data layers, additional reference layers of images from below (on background) and from above (on top) of the user's thematic data, such as the own cartographic base maps, maps of third-party services, annotations of geographical objects. The client software provides interactivity of the created maps in a standard web browser. The data presentation configuration provides the ability to select the geodatabase format on the client (vector or raster), to control various display options (interactive legend, list of fields displayed in attribute tables), to use custom templates for displaying the table information according to the layer objects, to manage the data access rights, from the ability to render a layer or map through the web browser, to access spatial data through the WMS / WFS cartographic web services, and editing via web interface, or downloading as ArcGIS shape files. An integral part of thematic web maps based on the geoportal is a customized rasterization and data caching service that provides a noticeable performance increase for "heavy" multi-layer maps. A good addition to maps on the geoportal is a set of cartographic base maps, i.e. map-schemas, mosaics of satellite images, digital terrain models, and geospatial data of the third-party web services.  Figure 1. Software architecture of geospatial information processing system.
The first block of the modernized software, developed during the reporting period, is connected with the visualization of data on objects of an interactive web map. Geoportal tools allow to view information in a pop-up window in HTML format, when prompted on a web map with a mouse click. The information can be obtained: • according to the objects of a separate geoportal layer; • according to the objects of some or all geoportal map layers; • according to the coordinate, with the help of the informational geoportal service "address search".
In early geoportal versions, the developer of the map web application controlled visualization of the object data when the user requested it. A universal form of an information pop-up window was created, which made it possible to display the attributive information of objects in an accessible form, regardless of its content [11]. A mechanism of the data visualization according to the interactive web map objects based on the template system and external services was added to the current geoportal version. The new system features allow the operator, creating geoportal maps and layers for the end user, to form the necessary type of result of information according to the layer objects. The first method allows the user to control the output of information about the objects with the help of TWIG templates (http://twig.sensiolabs.org/). TWIG is a compiling template handler with open source code written in the PHP programming language. Templates allow to change the order and form of the IOP Conf. Series: Materials Science and Engineering 516 (2019) 012007 IOP Publishing doi:10.1088/1757-899X/516/1/012007 4 attributive data output according to the objects in map layers, including different style design (colors, font parameters, etc.). The second method allows, during the information output, to use an external service via the specified link, to which the attributive data is transferred. Such services will help to create more complex answers with application of other third-party services and databases [12].
The program block mechanism for visualizing the data according to the objects is as follows. Executing an information query on vector objects, an array of attributive data is formed on the web map on its all layers (for which there exists this opportunity, defined by the system operator) in the form of an indexed or associative array. Then, depending on the cartographic web application settings, two following options are possible: • the attributive information is transferred as an array to the web application, where the HTML-code of the request result is generated; • based on the attributive data array, the result is generated in HTML format and sent to the web application.
As a result, the information is displayed in the user's browser window at the location, determined by the developer. When the query result is displayed in the pop-up window, the operator can use the additional option to control the size of the information window, which can be necessary and convenient for some attributive data. Previously, the dimensions were calculated automatically, taking into account the window size limits. For pop-up windows, the minimum and maximum allowed widths or heights are defined ( Figure 2). The web map visualization on the user's side is possible in two modes: as a raster image or a set of vector objects, with use of the Web Feature Service (WFS) protocol. The current mechanism of the data visualizing with the help of templates and external services is currently working only in raster image mode. At displayment in vector format, the information about the objects is visualized with the help of a universal form as tooltips.

CSW web directory service
The use of the CSW (Catalog Service for the Web) protocol of the OGC (Open Geospatial Consortium) will significantly expand the application of the ICM SB RAS geoportal, which already contains tools and services for storing, cataloguing, publishing, and downloading of spatial data, searching and filtering on metadata, and interacting web-visualization.
The CSW standard defines the mechanism for searching and publishing metainformation about the spatial data, services and objects associated with them in terms of information. This service provides information exchange in distributed systems and improves the efficiency of geospatial data search by client applications [13,14]. The catalogue contains records that are encoded in XML format in accordance with one of the metadata storage standards, i.e. ISO 19139, Dublin Core, DIF, FGDC, and Atom. An example of individual metadata elements is the title, format, type (data, data set, service), bounding area on the map, projection, etc. Queries can be sent to the directory in several ways via the HTTP protocol: GET or POST with parameters, POST with XML document. The CSW 2.0.2 specification defines the following operations for the directory: • GetCapabilities -to get metainformation about the service itself.
• DescribeRecord -to get a description of the elements of the information model of resources.
• GetRecords -to search for entries in the directory using filters.
• GetRecordById -to get the catalog entry by its unique identifier.
• GetDomain -to get a set of valid values for individual metadata fields.
• Harvest -to download metadata from another source (server).
• Transaction -to create / edit / delete directory entries.
After analyzing the existing libraries and individual applications for organizing CSW access to the directory, Pycsw solution was chosen for a basis, which meant the full implementation of the OGC CSW server in Python. Based on this, the software was created for the ICM SB RAS geoportal. Pycsw has open source code, it is also distributed under the MIT license and works on all major platforms (Windows, Linux, Mac OS X). Pycsw allows to publish and collect metadata through several API options (CSW, OpenSearch, OAI-PMH, SRU), providing standard-based implementations of the directory service. It supports several metadata formats with transparent conversion -ISO, Dublin Core, DIF, FGDC and Atom. To collect metadata from the external servers, the information model of the geoportal catalog was modified. A new element, i.e. "Catalogue", has been added, which specifies the source address (URL), the frequency of its polling and other settings. After the import is completed, the information element is created in the form of child nodes.
The key elements of the scheme for expanding the ICM SB RAS geoportal are as follows: • Resource Directory is an internal catalogue of geoportal resources with its programming interface via SOAP -CatalogueAPI protocol. • Pycsw is an expanded pycsw application with a database on PostgreSQL and 2 directories, both public and official. The public catalogue is accessible from outside via the CSW protocol and contains meta descriptions of geoportal resources. • The synchronization service is a service providing filling of the public directory pycsw, launch of data collection tasks through the pycsw service directory. • External servers are various sources of spatial data and metadata, with access via WMS, WFS, WMTS, CSW protocols. Also, a separate data synchronization service was developed. The service runs on schedule and performs 2 main tasks: 1. Filling the pycsw database. This service is connected to the geoportal catalogue via the SOAP protocol and crawls all public resources. If any resources were added / changed / deleted, the corresponding operation is performed on a public copy of the pycsw directory. The process is performed incrementally, only those resources that were updated are modified.

Organization of data collection (harvest).
To accomplish this task, pycsw options are used for importing data from the external sources. A separate, service pycsw directory, unavailable from outside the geoportal, is used here. At next iteration, the synchronization service polls all created items of the "Catalogue" type on the geoportal via CatalogueApi. For new objects, or for those that have time for the next synchronization, the asynchronous query of Harvest to pycsw is executed. As a result, a service pycsw directory is filled with resource metadata from an external source. Further, the synchronization service creates corresponding information resources in the geoportal catalogue.

Editor of the style design of geoportal layers and maps
A new style editor of the geoportal thematic maps was created in the web interface. It forms an XML description of the style design of geoportal layers and maps, and stores it in the resource directory. Previously, this task was solved with the help of a separate windows application GeoExpress. The implemented new solution simplifies significantly the process of setting the parameters of the spatial data representation on the geoportal. The implementation is made in the concept of a single-page web application (single-page application, SPA). A single HTML document is used as a shell for all web pages, with organization of interaction with the user through dynamically loaded HTML, CSS, JavaScript via AJAX. All visual interface elements are constructed directly in the browser using JavaScript by manipulating the document's DOM structure. The development was performed using the AngularJS client-side JavaScript framework. The framework works with HTML, containing additional custom attributes, that are described by the directives, and links the input or output of the page region to a model that is a regular JavaScript variables [15]. The values of these variables are set manually or extracted from the static or dynamic JSON data. The library is flexible for choosing design patterns, and models MVC (Model-View-Controller) or MVVM (Model-View-View Model) can also be chosen. The framework adapts and extends traditional HTML to provide two-way data binding for dynamic content, which automatically synchronizes the model and view. As a result, AngularJS reduces the role of DOM manipulations and improves testability [16,17].
The main web application for geoportal setting up and managing, was updated in the part of styling setting up. Style editors for layers and maps were developed in the form of SPA-applications built into the main user interface [18,19].
The layer style editor supports several types of design: thematic coloring, pie charts, bar charts, cumulative histograms. Style classes are defined for a range of scales and conditions for attributes of spatial objects. All changes can be immediately viewed on the map in the preview tab.
For the full-fledged functioning of the client part of the style editor, server support is required in the form of a set of services. The following tasks are solved: • Navigation through the directory resource tree to select a layer. Getting the values of the specified attribute layer field. • Getting the list of the available libraries of symbols and fonts, as well as their elements.
• Forming an image of a font table and individual characters. • Preview of a layer or map with the current style settings. • Projection transformation for an array of points.

Implementation experience based on geoportal technologies
The list of selected projects implemented on the basis of this approach: • "Spatial Data Bank of the Krasnoyarsk Territory" for the Ministry of Informatization and Communication of the Krasnoyarsk Territory; • "Automated system for monitoring the municipal entities" for the Ministry of Economy and Regional Development of the Krasnoyarsk Territory; The modular architecture of the systems under consideration, the use of standard web services for data exchange between these modules, ensures the rapid adaptation of the existing software to the customer requirements, the replication of individual components, and their complementarity. In its turn, registration of created resources, i.e. spatial data in the centralized geoportal catalogue, provides the possibility of their simultaneous application in several developments. This service-oriented approach, based on the active implementation of web technologies into application information systems, is increasingly being used now [20].

Conclusion
For application geoinformation web systems, based on geoportal, a set of special software has been created. Web based visualization services for cartographic data have been implemented by mouse click on the basis of the compiler template handler, which allows to change the order and form of the attributive data output according to the objects in map layers, including different style design, i.e. color, font parameters, etc. New web services have been created to represent raster data, including data for remote sensing, which have tools for creating thematic maps, managing information requests, building a legend based on the palette. Implemented support by the geoportal of the embedded resources in vector format WFS, support for requests in POST format, created a single URL for accessing to services.
To support the integration of heterogeneous distributed geospatial data in the system of resource cataloguing, based on the ICM SB RAS geoportal, the CSW protocol is supported, which defines the mechanism for searching and publishing meta information about spatial data, services and information objects associated with them.
As a result, the spatial metadata catalogue is provided in a distributed mode, with information transmission (synchronization) between the distributed nodes in the network.
The software for creating and editing the style of thematic maps in the web interface has been created, which greatly simplifies the process of setting the parameters of the spatial data representation on the geoportal.
The above software and technology solutions implemented in a modular service-oriented architecture will help to ensure the effective implementation of new geospatial web applications and services.