Latvia is a “single city country”. Approximately half of its population lives in Riga and suburbs, with the rest of the country inhabited relatively sparsely.
As such, transportation opportunities beyond Riga are somewhat limited.
Locations around Riga and those in Eastern Latvia are best accessible by trains (if you have no car). The network there is extensive but there are no high speed railroads. Nearly every Latvian passenger train route either begins or ends at Riga. In the areas close to Riga, the passenger railway traffic is especially frequent, with a train in each direction every 20-60 minutes between morning and almost midnight. It gets progressively scarcer further from Riga however, with just 2-4 daily trains each way to the most distant cities such as Daugavpils. To some cities there are merely two trains a week (in Friday and Sunday, mostly aimed at students getting home). While Latvia seemingly has an extensive railroad network, it should be noted that the passenger services have been scaled down or removed on many tracks.
Areas around Riga are considered suburbs as far as railways matter and the tickets are sold by zones akin to subways.
Buses are the best public option of travelling where the passenger trains don’t reach or are scarce. They reach pretty much everywhere, however unlike railways they are operated by many companies making exact timetables more difficult to find.
Given rare public transport, having a car is advisable if going beyond main cities and Riga surroundings. Outside of Riga suburbs there are no highways. The trunk roads are tarred, but they still have just two lanes. The other roads are surfaced in gravel. 90 km/h is the highest allowed speed, reduced to 50 km/h in towns.
While driving from Riga to Liepāja, Daugavpils and Ventspils may take ~3 hours, there are no internal flights as the ones that existed proved to be unprofitable due to thin population outside Riga.
Latvia is best accessible from further countries by plane.
Riga International Airport is the largest passenger airport in the Baltic States (it serves as many passengers as Vilnius and Tallinn airports put together). The national airline airBaltic offers flights to destinations all over Europe. While there are several routes beyond Europe, travelling there usually requires a transfer in larger European hubs. Riga is the only airport to offer scheduled flights.
Roads lead to Latvia from Lithuania, Estonia, Russia and Belarus. There are no customs nor border checks between Latvia and two other Baltic States, offering good opportunities to visit the three Baltic States by car in one trip. Borders with Russia and Belarus however may take multiple hours to cross and in almost all cases a visa will be needed.
As Latvia uses broad (“Soviet”) railroad gauge, the railroad access is limited to rather slow Russia-bound trains. There are no trains between the three Baltic capitals: while these would be technically possible, they would likely be too slow to outcompete buses.
As such, buses are the prime mode of transportation between Latvia and the neighboring countries. Longer distance buses fell out of fashion as the aircraft connections improved. While there are also numerous flights to Tallinn and Lithuania, these are too expensive to be competitive for non-business customers.
Latvia has three major ports: Riga, Ventspils and Liepāja. Each of them offers different opportunities to cross the Baltic Sea in a ferry, with routes available to Stockholm (Sweden), Germany and St. Petersburg (Russia). These routes typically depart in evening (or afternoon) and arrive the following morning (or afternoon). One may hire a cabin.
Latvian cities have a comprehensive system of public transport.
There are no subways or elevated trains, meaning this transport can be slow. In areas around Riga however suburban trains serves as a rapid transport system, connecting Riga to Jūrmala and Jelgava and having multiple stops in those cities.
In the largest cities (Riga, Daugavpils, Liepāja), the local public transport is anchored on trams which serve main routes. Buses are also available. In the smaller cities, buses are effectively the only form of public transport.
Vehicle rental is readily available in Riga, including the airport. Fuel prices are rather large (as per European Union requirements, the total taxes of over 100% for every liter sold), while parking is especially costly in Riga but cheaper in other cities.
Riga is the hub of Latvia. Therefore, it is always easy to get from Riga to anywhere in Latvia, and your trip to Latvia will most likely start and end in Riga.
Railway is the primary public transportation from Riga to the nearby cities and towns (Jūrmala, Jelgava, Sigulda, Lower Daugava valley). It may also be used to go to the Eastern Latvia (e.g. Daugavpils) and further east into Russia.
For such long-distance routes, however, air traffic has partly outcompeted railways. Riga International Airport is the largest in the Baltic States, offering convenient connections both eastwards and westwards. There are no domestic flights, however, as Riga is now effectively Latvia’s only passenger airport.
Buses are the primary form of transportation to go from Riga to Western Latvia (e.g. Liepaja, Ventspils) where trains are non-existent or few and far between. They are also used to go the other Baltic capitals (there are no train routes), although here the direct flights provide a good, although more expensive, alternative. International buses and flights are often priced the same way – the earlier you buy, the cheaper you may buy a ticket.
If you are going to Riga from the other side of the Baltic sea, you may also choose ferries which transport both passengers and cars from Germany and Sweden.