Once I needed to get a clean city subset from raw OSM data (because it’s so convenient, compact and just beautiful).  To my surprise, I did not find a ready-made recipe, which is why it took me a little sweat to complete this task. 
      
        
        
        
      
    
      
        
        
        
      
      In view of the foregoing, I consider it my duty to share my experience. 
      
        
        
        
      
    
      
        
        
        
      
     
      
        
        
        
      
    
      
        
        
        
      
      Suppose I want to get a Chisinau subset (why? ... it's warm there, my house is there, my mother is there) 
      
        
        
        
      
    
      
        
        
        
      
      Of course, we are not interested in 
Planet.osm , but there is 
geofabrik , but there the planet is cut into rather large shmatka - 
http://download.geofabrik.de/europe/moldova.html 
      
        
        
        
      
    
      
        
        
        
      
      So, the city border is in the 
raw data . 
      
        
        
        
      
    
      
        
        
        
      
      It’s easy to get a landfill from the relationship, we do it either by hand or using any suitable utility, for example, 
this one . 
      
        
        
        
      
    
      
        
        
        
      
      III ... now 
osmosis comes into 
play . 
      
        
        
        
      
    
      
        
        
        
      
      We have the osm of all Moldova and the limiting range of Chisinau, this is quite enough to get the city’s site from a raw XML (OSM) file: 
      
        
        
        
      
    
      
        
        
        
      
    osmosis --read-xml file="moldova.osm" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm"
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      Similarly, you can dig out data from the PBF (Protocolbuffer Binary Format) file: 
      
        
        
        
      
    
      
        
        
        
      
     osmosis --read-pbf file="moldova.osm.pbf" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm"
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      You can 
read a little more about osmosis 
here . 
      
        
        
        
      
    
      
        
        
        
      
      Well, the finished subset needs to be opened urgently in JOSM or imported into a personal project! 
      
        
        
        
      
    
      
        
        
        
      
    