Skip to content

Instantly share code, notes, and snippets.

@tyrasd
Last active January 9, 2017 10:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tyrasd/b17dd6452fd6065c9c3f5f76a0f35b66 to your computer and use it in GitHub Desktop.
Save tyrasd/b17dd6452fd6065c9c3f5f76a0f35b66 to your computer and use it in GitHub Desktop.
list of descending timestamps between ascending versions of an osm object (based on history-161205.osm.pbf)
type id version
node 334489687 3
node 354919611 5
node 1138179775 4
node 1429840833 5
node 1470794747 2
node 1472871495 2
node 1478934528 2
node 1485196779 2
node 1487705069 2
node 1487705071 2
node 1487717286 2
node 1488749836 2
node 1489631513 2
node 1489631514 2
node 1489631515 2
node 1489631516 2
node 1489631518 2
node 1489631519 2
node 1489631521 2
node 1489631523 2
node 1489631528 2
node 1489631529 2
node 1489631530 2
node 1489631531 2
node 1489631532 2
node 1489631534 2
node 1489631535 2
node 1489631537 2
node 1489631539 2
node 1489631540 2
node 1489631541 2
node 1489631542 2
node 1489631543 2
node 1489631544 2
node 1489631545 2
node 1489631546 2
node 1491448140 2
node 1491484404 2
node 4301091789 2
node 4304766074 2
node 4306981193 2
node 4309217791 2
node 4312564844 2
node 4313747193 2
node 4316009201 2
node 4319717390 2
node 4325210989 2
node 4325712510 2
node 4326515589 2
node 4329686490 2
node 4331825989 2
node 4331927692 2
way 2169045 3
way 3091888 11
way 3960114 5
way 3991003 38
way 3992661 7
way 3992662 5
way 4006546 4
way 4112000 4
way 4226196 4
way 4238707 7
way 4529851 4
way 4587694 8
way 4641478 16
way 4701257 6
way 4744034 12
way 4808776 3
way 4904778 3
way 4914390 5
way 4929109 4
way 4940234 17
way 5000308 20
way 5009293 4
way 5118262 7
way 5122526 12
way 5506369 3
way 5516386 3
way 5543688 3
way 5655012 4
way 5683847 3
way 5939002 4
way 5965945 4
way 5969406 3
way 5980481 5
way 5991982 3
way 6167914 4
way 6277169 7
way 6345297 16
way 6352053 9
way 7140131 7
way 7383308 10
way 7405238 5
way 7478294 4
way 7480158 3
way 7637735 3
way 7805388 4
way 7871116 3
way 7955636 9
way 8038034 11
way 8092838 10
way 8122653 5
way 8332583 4
way 8431974 6
way 8469976 5
way 8550186 3
way 8715328 4
way 8916766 4
way 8916766 9
way 8943867 3
way 8959874 4
way 8960922 3
way 9145187 4
way 9202734 7
way 9268860 4
way 9424466 11
way 9451633 13
way 10055733 9
way 10062426 3
way 10129926 5
way 10236440 3
way 10430317 4
way 10446951 4
way 10507178 3
way 10634149 4
way 10988580 5
way 11078370 3
way 12045000 4
way 12149831 16
way 12204452 5
way 12301322 3
way 12350740 8
way 12618300 3
way 12658551 3
way 13287654 3
way 13292997 4
way 13292997 6
way 13376694 3
way 13412625 3
way 13643276 3
way 13751422 3
way 13862976 6
way 13865386 10
way 14035752 9
way 14331201 8
way 14346755 10
way 14393406 7
way 14395419 8
way 14399142 9
way 14838804 5
way 15239757 20
way 15276304 5
way 15785881 3
way 16131939 5
way 16817439 6
way 16817439 7
way 16880712 6
way 16887448 7
way 16888556 7
way 16895106 6
way 17066201 3
way 17183429 5
way 17504345 6
way 18507273 4
way 18991932 5
way 19686921 3
way 19752206 11
way 19775167 11
way 19791591 17
way 19827216 5
way 19840204 4
way 20024339 4
way 20475943 8
way 20868053 3
way 20884116 4
way 20886747 8
way 20887784 3
way 21224920 3
way 21224935 5
way 21224955 3
way 21224996 3
way 21691528 13
way 22338290 4
way 22492745 3
way 22529530 7
way 22668705 4
way 22696047 8
way 22788731 3
way 22893447 20
way 22936141 3
way 22959429 13
way 22988254 6
way 23012585 5
way 23077755 3
way 23116078 32
way 23117621 6
way 23175267 4
way 23186319 4
way 23223970 4
way 23389692 8
way 23389692 11
way 23393527 9
way 23407700 3
way 23435993 11
way 23436990 4
way 23451757 3
way 23467114 3
way 23483301 3
way 23497037 5
way 23567681 5
way 23575438 3
way 23576841 5
way 23587224 4
way 23590338 5
way 23598768 3
way 23605559 5
way 23606176 3
way 23606628 6
way 23628942 3
way 23632451 3
way 23642275 4
way 23642277 4
way 23650605 4
way 23710186 4
way 23711529 4
way 23744348 4
way 23758766 12
way 23766164 3
way 23770484 6
way 23772300 7
way 23781389 5
way 23786214 4
way 23786317 4
way 23859381 5
way 23867173 5
way 23878821 3
way 23896359 3
way 23904073 4
way 23905211 4
way 23905243 3
way 23941197 3
way 23942079 9
way 23954290 12
way 23972267 6
way 23990967 3
way 24004521 10
way 24009486 3
way 24017755 5
way 24025670 3
way 24026433 8
way 24026974 37
way 24026974 39
way 24033785 3
way 24061192 3
way 24062049 3
way 24072941 3
way 24087047 3
way 24149689 4
way 24149882 3
way 24150087 4
way 24151301 4
way 24194430 4
way 24233473 29
way 24243410 3
way 24262442 3
way 24269960 4
way 24276235 9
way 24297762 3
way 24328104 3
way 24381422 3
way 24421717 3
way 24438250 4
way 24444118 4
way 24444120 4
way 24458440 3
way 24474289 3
way 24516009 8
way 24517155 14
way 24556042 8
way 24566348 3
way 24574249 4
way 24577048 4
way 24610927 3
way 24631937 3
way 24634422 3
way 24643661 4
way 24649224 4
way 24664625 18
way 24809816 9
way 24837356 16
way 24879493 8
way 24942211 5
way 24948243 6
way 24996799 9
way 25028219 5
way 25060567 6
way 25060567 7
way 25098088 3
way 25117337 6
way 25133252 7
way 25141012 6
way 25356196 10
way 25378632 9
way 25446498 5
way 25507306 11
way 25583750 5
way 25647339 9
way 25647365 8
way 25647398 6
way 25652041 4
way 25658642 9
way 25797413 5
way 25801689 6
way 25819683 6
way 25823969 9
way 25850983 4
way 25890326 5
way 25909566 5
way 25912324 7
way 25914686 3
way 25915928 4
way 25918778 6
way 25919361 3
way 25919742 8
way 25929332 3
way 25935927 4
way 25940853 3
way 25971487 5
way 25976988 6
way 25977678 4
way 25978613 3
way 25978844 6
way 25979086 3
way 25979760 5
way 25979790 4
way 25981273 13
way 25981926 2
way 25981958 2
way 25982356 3
way 25984169 3
way 25984172 4
way 25984383 2
way 25984648 3
way 25985009 2
way 25985016 2
way 25985083 4
way 25985210 3
way 25985473 2
way 25985502 6
way 25985597 2
way 25985618 2
way 25985757 20
way 25990205 6
way 25990284 2
way 25990287 2
way 25990434 2
way 25990536 4
way 25990597 2
way 25990627 4
way 25990639 2
way 25990689 7
way 25990796 5
way 25991162 2
way 25991453 2
way 25991682 2
way 25991710 2
way 25991748 3
way 25991855 3
way 25992277 2
way 25992305 2
way 25992536 5
way 25992696 2
way 25992717 2
way 25992728 3
way 25992892 3
way 25992931 3
way 25992973 2
way 25993028 2
way 25993170 3
way 25993236 2
way 25993519 5
way 25993694 3
way 25993800 2
way 25993979 3
way 25994016 2
way 25994177 3
way 25994192 2
way 25994275 2
way 25994279 3
way 25994645 5
way 25994967 2
way 25994988 2
way 25995558 28
way 25995898 4
way 25997056 7
way 25997509 4
way 25999653 7
way 25999758 2
way 26000349 4
way 26001388 11
way 26001555 2
way 26004011 3
way 26004275 2
way 26004381 13
way 26004976 3
way 26005657 3
way 26006222 7
way 26006330 3
way 26006856 2
way 26008461 3
way 26011491 3
way 26012397 3
way 26012616 2
way 26012920 2
way 26013795 2
way 26014166 2
way 26014343 2
way 26014643 2
way 26014879 3
way 26014895 2
way 26015187 2
way 26015367 8
way 26015731 2
way 26017264 2
way 26018268 2
way 26020407 4
way 26020493 4
way 26023199 2
way 26023235 2
way 26023295 2
way 26024823 2
way 26026207 4
way 26026261 2
way 26026266 2
way 26026267 2
way 26026363 3
way 26026386 12
way 26026404 2
way 26026600 2
way 26026692 5
way 26026757 2
way 26026844 2
way 26026890 2
way 26026892 3
way 26026894 2
way 26026991 2
way 26026997 2
way 26027080 6
way 26027159 2
way 26027362 3
way 26036834 2
way 26036843 3
way 26037958 2
way 26040267 2
way 26040268 2
way 26053010 6
way 26053159 2
way 26053178 9
way 26055565 2
way 26055938 3
way 26057917 2
way 26058710 8
way 26059044 2
way 26060578 3
way 26062794 2
way 26066215 2
way 26071523 2
way 26071835 2
way 26072053 3
way 26072269 11
way 26072440 2
way 26077951 3
way 26082204 2
way 26083007 5
way 26083063 2
way 26083089 2
way 26083256 2
way 26083441 3
way 26083510 3
way 26083517 2
way 26084318 4
way 26084517 2
way 26084580 2
way 26084693 2
way 26085054 6
way 26085179 4
way 26085454 3
way 26085554 3
way 26086173 3
way 26088693 2
way 26089091 2
way 26089690 3
way 26095182 4
way 26099149 3
way 26099681 3
way 26100036 5
way 26100107 2
way 26100197 2
way 26100665 10
way 26104204 4
way 26104205 7
way 26104224 2
way 26104293 8
way 26104294 2
way 26104347 6
way 26104510 2
way 26104516 2
way 26104996 2
way 26105001 2
way 26107986 2
way 26108278 2
way 26109441 2
way 26110979 2
way 26111377 6
way 26113569 3
way 26113792 2
way 26114072 3
way 26114147 9
way 26114151 2
way 26114151 5
way 26114223 2
way 26114510 4
way 26114556 11
way 26114641 5
way 26114713 4
way 26114739 2
way 26115060 4
way 26115609 3
way 26115680 2
way 26116613 2
way 26117100 2
way 26117371 3
way 26117814 3
way 26117825 3
way 26118012 3
way 26118517 3
way 26118885 4
way 26118894 3
way 26118969 3
way 26119080 2
way 26119084 2
way 26119502 10
way 26119741 12
way 26119858 3
way 26120056 3
way 26120195 4
way 26120316 10
way 26120341 2
way 26120367 6
way 26120384 2
way 26120453 2
way 26120503 4
way 26120651 2
way 26120692 2
way 26120787 2
way 26120822 4
way 26121230 3
way 26121404 4
way 26121426 4
way 26121570 2
way 26122362 2
way 26122561 2
way 26122730 5
way 26122798 2
way 26122964 2
way 26123589 2
way 26123597 3
way 26205936 5
way 26301963 5
way 26351428 7
way 26378065 5
way 26526509 11
way 26756192 8
way 26804944 5
way 27178501 5
way 27239946 3
way 27249144 9
way 27347302 6
way 27425160 4
way 27436631 8
way 27593684 8
way 27640011 4
way 27649366 3
way 27674177 10
way 27750863 4
way 27750863 6
way 27753568 17
way 27895550 3
way 27898268 3
way 27909899 3
way 27909921 3
way 28010079 2
way 28112755 7
way 28208871 5
way 28217989 3
way 28228474 5
way 28229662 5
way 28239133 6
way 28415888 14
way 28528174 18
way 28564559 3
way 28622230 5
way 28641191 11
way 28680440 5
way 28781465 3
way 28786385 3
way 29331214 5
way 30007856 5
way 30277029 3
way 30289520 3
way 30296148 3
way 30383443 4
way 30536455 5
way 30571164 3
way 31099599 13
way 31226213 3
way 31532069 5
way 32061014 3
way 32151539 4
way 32251566 4
way 32251581 3
way 32266382 9
way 32277509 5
way 32293199 4
way 32298681 5
way 32300553 3
way 32301738 3
way 32306519 4
way 32498313 8
way 32569218 6
way 32569822 5
way 32598804 5
way 32720156 5
way 32921212 4
way 32921564 3
way 32922974 7
way 33002141 3
way 37380210 26
way 43685374 6
way 95001695 3
way 115593078 3
way 133727474 3
way 133729450 3
way 133729490 2
way 134073850 2
way 134084612 2
way 134084677 2
way 134084678 2
way 134807080 3
way 134976214 2
way 134994477 2
way 135414438 2
way 135414898 3
way 135457655 2
way 135458983 2
way 135636053 2
way 135646770 2
way 135663512 2
way 135667690 2
way 135696250 2
way 135783563 3
way 136051423 2
relation 2650 4
relation 2692 25
relation 2692 36
relation 2692 42
relation 2692 53
relation 2692 65
relation 2692 71
relation 2692 93
relation 2793 3
relation 2850 9
relation 2850 11
relation 3127 16
relation 3127 42
relation 3127 46
relation 3127 49
relation 4256 18
relation 4257 7
relation 4257 9
relation 4257 13
relation 4257 15
relation 4310 19
relation 4324 211
relation 4324 219
relation 4640 6
relation 5062 10
relation 5072 11
relation 5286 119
relation 5838 112
relation 5885 3
relation 6144 63
relation 6145 63
relation 6371 5
relation 6701 4
relation 7268 206
relation 7404 63
relation 7444 12
relation 7449 18
relation 7466 14
relation 7655 35
relation 7670 3
relation 7747 4
relation 7916 10
relation 7916 18
relation 7916 20
relation 7916 22
relation 7916 25
relation 7916 27
relation 7916 29
relation 7916 31
relation 8411 28
relation 8443 6
relation 8443 11
relation 8643 12
relation 8662 6
relation 8667 4
relation 8779 62
relation 8873 6
relation 8900 18
relation 9045 28
relation 9060 18
relation 9070 18
relation 9090 11
relation 9189 4
relation 9315 3
relation 9497 3
relation 9594 3
relation 9627 5
relation 9896 4
relation 9896 6
relation 10019 10
relation 10019 12
relation 10116 2
relation 10714 12
relation 10715 23
relation 10715 25
relation 10718 7
relation 11001 24
relation 11002 17
relation 11012 8
relation 11012 19
relation 11017 16
relation 11094 14
relation 11094 24
relation 11095 11
relation 11095 13
relation 11237 25
relation 11335 4
relation 11595 17
relation 11595 191
relation 11595 288
relation 11595 290
relation 11595 320
relation 11595 322
relation 11700 3
relation 12295 30
relation 12295 33
relation 12296 7
relation 12297 31
relation 12300 22
relation 12300 25
relation 12302 11
relation 12305 3
relation 12309 32
relation 12316 4
relation 12317 4
relation 12318 35
relation 12386 8
relation 12396 7
relation 12464 18
relation 12591 10
relation 12873 7
relation 13103 7
relation 13297 6
relation 13297 11
relation 13297 24
relation 13325 5
relation 13333 8
relation 13352 5
relation 13545 7
relation 14163 5
relation 14184 63
relation 14184 107
relation 14184 281
relation 14274 38
relation 14274 82
relation 14274 95
relation 14274 116
relation 14300 8
relation 14300 18
relation 14325 3
relation 14809 4
relation 14810 8
relation 14810 90
relation 14811 10
relation 14811 89
relation 14902 14
relation 14979 10
relation 14979 12
relation 14979 14
relation 14979 16
relation 14979 30
relation 14979 32
relation 14979 42
relation 14979 44
relation 14980 95
relation 14980 108
relation 14985 4
relation 14985 6
relation 14985 12
relation 14985 49
relation 14985 51
relation 14985 86
relation 14985 88
relation 15180 10
relation 15190 34
relation 15190 46
relation 15190 48
relation 15190 62
relation 15190 64
relation 15190 71
relation 15246 58
relation 15246 103
relation 15246 179
relation 16667 136
relation 17886 197
relation 20431 74
relation 21021 25
relation 23316 56
relation 23746 10
relation 23808 30
relation 24855 41
relation 26579 61
relation 27057 1538
relation 58446 37
relation 58447 176
relation 76763 26
relation 151261 218
relation 182118 26
relation 371028 15
// searches for descending timestamps between ascending versions of osm objects in a history pbf file
//
// build with:
// g++ check.cpp -o check -O3 -I<path-to-libosmium>/include/ -lz -lbz2 -lexpat -lpthread
#include <cstdint>
#include <iostream>
#include <string>
#include <time.h>
#include <osmium/io/any_input.hpp>
#include <osmium/handler.hpp>
#include <osmium/visitor.hpp>
struct CountHandler : public osmium::handler::Handler {
uint64_t count = 0;
void process(osmium::OSMObject& obj, std::string type) {
static osmium::object_id_type id_;
static time_t timestamp_;
time_t timestamp = obj.timestamp().seconds_since_epoch();
if (id_ == obj.id()) {
if (timestamp < timestamp_)
std::cerr << "!!Found backward timestep! " << obj.id() << "@" << obj.version() << std::endl;
}
id_ = obj.id();
timestamp_ = timestamp;
}
void node(osmium::Node& obj) {
process(obj, "node");
}
void way(osmium::Way& obj) {
process(obj, "way");
}
void relation(osmium::Relation& obj) {
process(obj, "relation");
}
};
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " OSMFILE\n";
exit(1);
}
osmium::io::File infile(argv[1], ".pbf");
osmium::io::Reader reader(infile, osmium::osm_entity_bits::all);
CountHandler handler;
osmium::apply(reader, handler);
reader.close();
std::cerr << "processed objects count: " << handler.count << "\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment