113
edits
Changes
no edit summary
{{languages|Addon:PlaceCleanupGramplet}}{{Third-party pluginaddon}}
{{man note|Released for Gramps 5.x + versions}}
[[File:PlaceCleanupMain.png|thumb|right|350px450px|Place Cleanup Gramplet]]The '''{{man label|Place Cleanup Gramplet'''is an add-on that }} addon uses the WebServices feature from the [https://www.geonames.org/about.html GeoNames.org geographical database] to lookup as many as 2,000 placenames per day. ( ''See '''[[GeoCodes#Filters|GeoCodes]]'''.)'' Selected parts of the validated information can then be pushed into Gramps to correct and improve incomplete [[Gramps_Glossary#place|Place]] records.
== Purpose of this Gramplet ==
This was written to assist in cleaning up '''already existing''' places. You ''can'' use it while adding a new place, but the place must be created with the normal Gramps {{man menu|Add -> Place}} and select the new place in the top window prior to using the Gramplet.
See [[How to make a backup|make a Gramps XML backup]]}}
==Usage===== Installing the Place Cleanup Gramplet ===
The Gramplet can be installed like any other Addon; see {{man label|[[56.1_Addons0_Addons#Installing_Addons_in_Gramps|Installing Addons in Gramps]]}}
Once installed, make the Gramplet visible in the {{man label|Places}} category View and on either the {{man label|Place Tree}} or {{man label|Places}} view (which ever you usually use), and load the Gramplet in the bottom bar by clicking the {{man button| [[Gramps_{{Version manualman version}}_Wiki_Manual_-_Main_Window#Bottombar_and_Sidebar| ∨]]}} (''Down Arrowhead'' button also known as the '''Gramplet Bar Menu''') at the far top right of the bottombar titles, and then using the {{man button|Add a gramplet}} menu item.
=== GeoNames account prerequisite ===
[[File:GeoNamesFreeWebServices.png|thumb|right|250px450px|Add free WebServices at the Login screen]] The first time you attempt a search, you will be reminded to obtain and set a GeoNames user ID, which is required for use of their data. You can sign up for the ID at the following link: [httphttps://www.geonames.org/login httphttps://www.geonames.org/login].
The account signup requires responding to a confirmation eMail.
Once you have an ID, you should set it into the Gramplet via the Preferences button, see below.
{{-}}
=== Preferences === [[File:PlaceCleanupPref.png|thumb|left|44px|alt="Preferences icon"]][[File:PlaceCleanupPrefDialog.png|thumb|right|350px450px|Place Cleanup Gramplet - Preferences]]
The Gramplet Preferences is accessed via the Preferences button (located in the top right of the main view of the Gramplet, next to the Title field). The button should appear in the far upper right of the Gramplet.
<br /><br /><br /><br /><br />
* ☑{{man label|Keep Web Links}} checkbox. The GeoNames database contains various URL links to other web data, associated with each place. For example, many places have a Wikipedia link. If you check this setting, the Gramplet will save these web links with the place data. They will appear in the 'Internet' tab of the Place Edit dialog.
* ☑{{man label|Add citation and source to Place}} checkbox. If you check this setting, a Citation will be added to each place, citing the 'GeoNames' Source and Repository, with the Citation having a 'Volume/Page:' value with the GeoNames ID number. There will be a Citation for each Place, but only a single Source and Repository.
* {{man label|GeoNames User ID}} field. This contains the necessary GeoNames user ID. You can sign up for the ID at the following link: [httphttps://www.geonames.org/login| httphttps://www.geonames.org/login].
* {{man label|Alternative Names Languages to keep}} field. This contains a space separated list of the [https://wikipedia.org/wiki/List_of_ISO_639-1_codes ISO-639-1] 2-letter language code: <code><abbr title="English">en</abbr> <abbr title="Deutsch">de</abbr> <abbr title="français">fr</abbr> <abbr title="Italiano">it</abbr> <abbr title="Español">es</abbr></code>, et cetera. As you work with the Gramplet, you will see a list of alternate names available for most places, with the language code for the names. If you want these names automatically checked off for inclusion in your Gramps place, add the code to this field.
* Currently Enclosed Places. When you use the {{man button|Ok}} button after selecting a GeoNames place, the Gramplet may have to deal with a place enclosure. If you are modifying a current place, and your place is already 'Enclosed by' another place the Gramplet has two choices on how to handle changes to the enclosure.
**: While this ensures that the enclosure matches GeoNames, it is possible that the previous enclosing place will no longer be used, and will remain in your database.
=== Main view ===
{{man warn|Use extra caution when changing the Title field|The place data found and pushed to update the Place view will depend on the contents of this field. If you change it in inappropriate ways, you could end up with mismatched place data. <br />For example, if the originally active record in the Place view is "Berlín, Usulután", and you manually type in a Place title of "Berlin, Germany" to search, when you find ''and accept'' the Berlin place, your originally selected Place view record for the municipality in El Salvador will be changed to Europe!}}
[[File:PlaceCleanupFind.png|thumb|right|350px450px|Place Cleanup - finding a particular place title]]
The Main view has several buttons, a 'Title' field, a small 'xx Matches' status, and a 'Choices' or match results list.
* {{man label|Title}} field. This field shows the Place that is currently under investigation. It provides the search terms that are used for finding a place. It changes automatically to the place title when the Gramps Place view has an active selection. The field can also be modified by the user, just set the cursor in it and edit as normal. This is generally only needed when trying to find a place in GeoNames that might have unexpected abbreviations, or historical hierarchy or other issues which can make finding a match in the GeoNames database difficult. (As an example, your Gramps place hierarchy has "west berliner, west germany". There are no matches and you wonder if GeoNames only has post-unification names. Then you notice that there is a typographical error with a trailing 'er'. So you change it to successfully search for "west berlin, west germany" instead of that elusive donut.)
* {{man label|Matches}} status. This small status block is located on the left side of the Gramplet, just below the 'Title' label. It indicates the number of matching places found when searching the local Places list or the GeoNames database. The status also indicates where the matches were found, either 'Local', or 'GeoNames'.
* {{man label|Search result places}} list. This area lists the found matches. The user should select the correct match for the place under investigation, and either press the {{man button|Select}} or double-click, press 'Enter' or 'Space' to move to the result/edit screen.
:: There are two columns in this list, the names, and the 'Types' columns. The names are comma separated places in the hierarchy, as found in the local database, or in GeoNames. The 'Type' column in the Places view shows the Gramps Type, when showing places from the local database, and shows [https://www.geonames.org/export/codes.html GeoNames types Feature Codes] that includes a Feature class letter followed by a colon, then a type) when showing results from the GeoNames search.
{{man tip|Avoiding rework|If you search GeoNames for a place in that is already in your database, the search results may return some entries annotated with a red strikethrough. This indicates that those places are already enclosed by the current place and cannot be selected.}}
:: The Type column is provide for informational use only, to help the user determine a bit more about the found place. The GeoNames types Feature Codes are not always obvious; the type [https://poldham.github.io/places/reference/featurecodes.html#format type format] starts with a 'class'; one of 'A'(Administrative place), 'P'(Populated place), or 'S' for 'Administrative place'(Spot). (Of the 9 GeoNames classes, searching <abbr title="Hydrographic Features">H</abbr>, <abbr title="Area Features">L</abbr>, <abbr title="Road / Railroad Features">R</abbr>, <abbr title="Hypsographic Features">T</abbr>, 'Populated place'<abbr title="Undersea Features">U</abbr>, or 'Spot' respectively<abbr title="Vegetation Features">V</abbr> is not supported. ) You can restrict the returned search matches to desired categories with the matching Checkboxes (see below). The remaining part of the type field for GeoNames can be decoded from [httphttps://www.geonames.org/export/codes.html| httphttps://www.geonames.org/export/codes.html], if desired.
* ☑{{man label|Populated}} checkbox. If you check this setting, 'Populated Places' (typically cities, towns, villages etc.) will be returned for a GeoNames search. This setting does not affect a local database search. This is initially enabled, as it allows the search to return what most people expect for a city type search.
* ☑{{man label|Admin}} checkbox. If you check this setting, '[[Gramps_Glossary#administrative_division|Administrative Divisions]]' (countries, states, regions etc.) will be returned for a GeoNames search. This setting does not affect a local database search. . This is initially enabled, as it allows the search to return what most people expect for a county, state, country type search.
* {{man button|Next Place}} button. This causes the Gramplet to advance to the next incomplete Place in the Gramps Places list. Incomplete places are missing any of the Latitude/Longitude or Place Type data. If a place is found that is not used by any Event or encloses another place, you will get a dialog popup message suggesting that the place be deleted.
=== Result/Edit view ===
[[File:PlaceCleanupRes.png|thumb|right|350px450px|Place Cleanup Result View]]
This view presents the found place data for review and potential editing.
* {{man label|Postal Code}} field. This field displays the postal code(s). It can be edited. There is a small {{man button|Orig}} checkbox just above this field, if checked, the Original postal code from the place is used instead of the found postal code. Note that this checkbox is disabled if there is no original postal code.
* {{man label|Type}} field. This field displays the place type. It can be edited. There is a small {{man button|Orig}} checkbox just above this field, if checked, the Original place type from the place is used instead of the found place type. Note that this checkbox is disabled if there is an 'Unknown' original place type.
{{man note|NOTE|The GeoNames database does NOT provide Gramps Place Type data. |This Gramplet uses the available data to make a 'best guess' at the correct Place Type. You should always check and make sure that the value is correct, and fix it if necessary.}}
* {{man label|Latitude and Longitude}} fields. These fields displays the Latitude and Longitude. They can be edited. There is a small {{man button|Orig}} checkbox just above these fields, if checked, the Original Latitude and Longitude from the place is used instead of the found Latitude and Longitude. Note that this checkbox is disabled if there is no original Latitude and Longitude.
* {{man label|ID}} field. This field displays the Gramps ID. It cannot be edited. There is a small {{man button|Orig}} checkbox just above this field, if checked, the Original ID from the place is used instead of the found ID. Note that this checkbox is disabled if there is no original ID.
* {{man button|Ok}} button. Pressing this modifies the selected place with the new values. In addition, the next level of the place hierarchy will be set into the place. If that next level is already present in the local Gramps place list, and has a matching GeoNames ID, the modifications are completed. If not, the next level in the place hierarchy is shown in the results view.
== FAQ ==
* GeoNames data is primarily intended for present day usage. It contains little historical information. I have heard that it is pretty complete for United States, Canada, and less so for Europe, although it seems to have all the European cities I have tested so far. If you find an error or omission in the GeoNames data, you may want to tell GeoNames about it [httphttps://www.geonames.org/manual.html| httphttps://www.geonames.org/manual.html].
* GeoNames finds multiple places: Example, 'Santa Rosa, CA'. GeoNames finds both 'Santa Rosa, Sonoma, California, United States' and 'City of Santa Rosa, Sonoma, California, United States'. The way the GeoNames database is structured, they have a 'Populated Place', which generally has lots of Alternate names and postal codes, and an 'Administrative subdivision' for the same place. The 'City of' version is the Administrative subdivision, which generally doesn't have postal codes and alternate names. I personally prefer the first version, which should appear first in the 'Choices' list.
* Timeouts: When using the GeoNames web database with a free account, you will sometimes get a timeout. The Timeout is set to 20 seconds for each request, unfortunately some actions take several requests, so the user may see unresponsive Gramps for up to 40 seconds. You can always try the request again by pressing the last used button. According to the GeoNames web site, if you pay for an account, you may get better performance, as the paid accounts use more lightly loaded servers.
* GetGov, how does this interoperate with the data from GetGov? At this time it does not integrate with that data. If you already have places loaded from the [[Addon:GetGOV|GetGov]] addon, then the ID field will have a GovID. If you want to do a lookup with GeoNames for that place, you should probably set the Place Cleanup preferences for the enclosure to keep the current values. In addition, you should probably use the 'Orig' checkbox for the ID to keep the original Gov ID.
== Issues ==
This tool is fairly complex. Please report any issues or desired enhancements to paulr2787 at gmail.com.