Package: mapdata
mapdata.pyis a data explorer for data sets containing geographic coordinates.  Data can be read from a CSV file, spreadsheet, or database.  Both a map and a data
table are displayed.  When a location is selected on the map, the same location is highlighted in the table, andvice-versa.  Single or multiple selections may be enabled.  Locations may also be selected and highlighted by writing a query expression to select rows of the data table.Coordinates should be in decimal degrees, in WGS84 (coordinate reference system [CRS] 4326), however, coordinates in other CRSs can be converted to 4326.The map display can be customized in several ways:Different raster tile servers may be used for the basemap.  The default is
OpenStreetMap.  Several alternatives are provided, and other tile servers
can be specified in a configuration file.Locations identified by coordinates in the data file may be designated by
different types of markers and by different colors.  The default marker for
locations, and the default marker used to flag selected locations can both be
customized.  Symbols and colors to use for location markers can be specified
in a configuration file and in the data file.  Different symbols and markers
can be used for different selected locations.Locations may be unlabeled or labeled with data values from the data file
The label font, size, color, and location can all be customized.When there is more than one data value (table row) at a location, the number
of rows can be annotated on the map adjacent to each location.  In addition,
data can be selected based on the number of data rows with the same geographic
coordinates.The map can be exported to a Postscript, PNG, or JPEG file.  Using command-line options,mapdatacan be directed to load a data file and display location markers and then to
export the map to an image file, and quit.Selected rows in the data table can be exported to a CSV or spreadsheet file.Mapdataprovides five different ways to show information about multiple data rows that all have the same geographic coordinates, and thus plot at the same location on the map.Data can also be displayed in several different types of plots: box plots, scatter
plots, line charts, ECDF plots, Q-Q plots, Fisher-Jenks group plots, strip charts,
and counts of categorical and quantitative variables.  Plots
can use either all data or only data values that are selected in the map and
table.  Plots have a live connection to the data table and map, so when data selections are
changed the plots are automatically updated.Mapdatacan also display summaries of univariate and bivariate statistics for selected variables.  These summaries can use either all data in the data table or only the data that are highlighted on the map.  These summaries are updated immediately if different data are selected.In addition to univariate and bivariate statistics, and plots,mapdatacan display the relationships
between variables in the form of:A correlation matrix.A contingency table, using either categorical or numeric variables, with flexible
specification of groups.  Tests of independence, risk ratio, odds ratio and related
statistics, and conditional probabilities are all shown.A Receiver Operating Characteristics (ROC) curve and measures such as sensitivity and specificity
for a selected value of the predictor variable.SQL commands can be used when importing data from a database.  The SQL
commands can be augmented withexecsqlmetacommands and substitution variables.Complete documentation is athttps://mapdata.readthedocs.io/en/latest.A configuration file template and additional bitmap symbols are included with the distribution ofmapdata.py.DependenciesMapdata.pyuses the following third-party Python libraries:jenkspyloessnumpymatplotlibodfpyopenpyxlpillowpymannkendallpyprojscipyseabornstatsmodelstkintermapviewxlrdIfmapdata.pyis used to query a database to obtain a data set to view and
explore, then one or more of the following Python libraries will have to be
installed manually, depending on the type of DBMS used:PostgreSQL:psycopg2MariaDB and MySQL:pymysqlDuckDB:duckdbSQL Server:pydobcOracle:cx-OracleFirebird:fdb