Answer #1 Requires script writting, exiftool, and the creation of a places database.
A partial answer would use a script and exif tool.
Exiftool can read both the exif and IPTC as well as most other metadata in an image. Geolocation is part of the data it can read.
So if your photostream is in folder ~/PhotoStream (I've no idea where you keep it.)
foreach photo in ~/Photostream {
(year,month,lat,long) = exiftool {bunch of flags} photo
foreach placename in ~/Placenames {
# Place name has lat, long, name, radius
# Calculate angular distance from present lat/long to each placename
distance = sqrt((picture_lat - place_lat)^2 + (picture_long - place_long)^2)
if (distance < place_radius) { # found one!
if not exists directory year-month-placename {mkdir MyPics/year-month-placename
move file year-month-placename
}
}
The problem with general sorting for geographical data is that it is intrinsically two dimensional. If you sort just by lat, you end up with New York City being adjacent to Rome.
The script above while not enormously difficult will take some time to get working right, mostly due to the place names.
Answer #2 Sort into folders by date, and add places manually.
I would suggest that unless your place names are fine enough grained that they change multiple times in a day. (E.g. you have separate entries for your hotel, the temples, the coliseum...) that doing a first bin by date, then rename the resulting folders manually.
I recently went through my aperture file (15000 images) and essentially did this by hand. Few of these pics have geolocation info.
A: Renamed each image in the format yyyy-mm-dd hh-mm-ss. Aperture can do this automatically.
B: Make a batch of year folders. Made a project in each one called 'unsorted'
c: Manually moved each year's pix into year folders/unsorted.
d: Make a batch of month projects in each year folder.
e: Move the pix from unsorted into appropriate month folder.
f: In some cases I would make a special project yyyy-mm-project_name where I had a large number of photos dealing with a single topic.
This didn't take as long as it sounds.
Much longer was going through each folder and applying keywords. Well worth doing.
While this doesn't answer your question precisely, this may help prevent frustration attempting to export all photos and all videos simultaneously.
Create a smart album in Aperture or in iPhoto setting conditions to find all the video like in the image below:
Its just not clear what video formats are compatible with Aperture or iPhoto, so adding every format you can think of to these conditions won't hurt anything.
Once the smart album is created, you can select all the videos in the album and export them in one step.
Alternatives
(At this point I just can't justify $140 for Lightroom, or commit to their CC to get it...)
darktable
Alternatively, for an application more powerful than iPhoto, and holds its own against Lightroom or Aperture, I've discovered darktable, which
"is an open source photography workflow application and RAW developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them."
darktable can be installed manually, but is also maintained as a port using MacPorts, if you prefer to use package management. I've included step by step instructions for installing MacPorts and darktable below.
GIMP
An extremely powerful alternative to editing photos is using the GIMP. The GIMP can be installed manually, or built from source using MacPorts. I've included instructions below on how to install the GIMP using MacPorts. If you know Adobe Photoshop well, you may want to demo using GIMPshop, which very cleverly and conveniently reconstructs the look and feel of the GIMP to appear and behave nearly just like Photoshop... and its all for free.
MacPorts
MacPorts is a robust, stable, mature and easy to use package management solution, for OS X. It is modeled after FreeBSD's ports system, which has been adopted as the basis of NetBSD's pkgsrc. I highly recommend MacPorts.
install Xcode 5.1.1
MacPorts requires an appropriate version of xcode; xcode_5.1.1.dmg is the most recent version for Mavericks (after registerring for a free developer account, and logging into developer.apple.com, that link will begin your xcode download). Once the download completes, lets just do it all in /Applications/Utilities/Terminal.app (don't be afraid of the terminal!):
goodytx@stack:~$
goodytx@stack:~$ hdiutil attach -quiet -noverify -nobrowse -noautoopen ~/Downloads/xcode_5.1.1.dmg
goodytx@stack:~$ cp -npR /Volumes/Xcode/Xcode.app /Applications/
goodytx@stack:~$ hdiutil detach -quiet /Volumes/Xcode
goodytx@stack:~$ open -g /Applications/Xcode.app; sleep 8
goodytx@stack:~$
goodytx@stack:~$ killall Xcode.app
install MacPorts
Get to know MacPorts
goodytx@stack:~$
goodytx@stack:~$
goodytx@stack:~$ curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2
goodytx@stack:~$ tar xf MacPorts-2.2.1.tar.bz2
goodytx@stack:~$ cd MacPorts-2.2.1
goodytx@stack:~$ ./configure
goodytx@stack:~$ make
goodytx@stack:~$ sudo make install # *not war!*
goodytx@stack:~$ cd ..
goodytx@stack:~$ rm -rf Macports-*
goodytx@stack:~$ sudo /opt/local/bin/port -v selfupdate
goodytx@stack:~$ diskutil quiet repairPermissions /
goodytx@stack:~$
goodytx@stack:~$
add MacPorts to your $PATH:
goodytx@stack:~$
goodytx@stack:~$ export PATH=/opt/local/bin:/opt/local/sbin:$PATH
goodytx@stack:~$ export MANPATH=/opt/local/share/ man:$MANPATH
goodytx@stack:~$
install darktable and the gimp
goodytx@stack:~$
goodytx@stack:~$
goodytx@stack:~$ port info darktable
darktable @1.1.2_5 (graphics)
Variants: gcc44, gcc45, gcc46, gcc47, gnome_keyring, quartz, universal, [+]x11
Description: Darktable is a virtual lighttable and darkroom for photographers: it manages your digital
negatives in a database and lets you view them through a zoomable lighttable. It also
enables you to develop raw images and enhance them.
Homepage: http://www.darktable.org/
Build Dependencies: cmake, pkgconfig
Library Dependencies: cairo, curl, dbus-glib, exiv2, gettext, glib2, gtk2, gtk-engines2, jpeg, json-glib, lcms2,
lensfun, libglade2, libgphoto2, libpng, librsvg, libxml2, openexr, sqlite3, tiff, zlib
Platforms: darwin
License: GPL-3+
Maintainers: julians37@gmail.com
goodytx@stack:~$
goodytx@stack:~$ port info gimp
gimp @2.8.10 (graphics)
Variants: animation, gmic, quartz
Description: This is a META port for the GNU Image Manipulation Program (GIMP) which includes support
for icns, JP2000 and RAW formats, content-aware rescaling, Gutenprint and scanner frontends
and, optionally, an animation tool (the GIMP Animation Package) and an image processing and
scientific visualization tool (GREYC's Magic Image Converter).
Homepage: http://www.gimp.org/
Library Dependencies: icns-gimp, gimp-jp2, gimp-lqr-plugin, gtk-nodoka-engine, gutenprint, ufraw, xsane, gimp-app
Platforms: darwin
License: none
Maintainers: devans@macports.org
goodytx@stack:~$
goodytx@stack:~$
goodytx@stack:~$ # the port info commands above are unnecessary, you only need one command to install both ports:
goodytx@stack:~$
goodytx@stack:~$ sudo port -vsc install darktable gimp
That's really all there is to it. If you can follow a recipe to bake a cake, you can do this too. And you can keep all your ports updated to quite simply with:
goodytx@stack:~$
goodytx@stack:~$ sudo port -vsc selfupdate
goodytx@stack:~$ sudo port -vsc upgrade installed
MacPorts will not interfere with the use of OS X, Aperture, iPhoto, Lightroom, nor with any other software. It keeps everything it installs in its /opt directory (and any full gui applications it builds in /Applications/MacPorts/ ).
more free software available
searching macports for "photo" returns 17 more ports besides darktable, while searching for "image" returns a whopping 260 more ports of image utilities
goodytx@stack:~$ port search photo
goodytx@stack:~$ # too much to list here
goodytx@stack:~$ port search image
goodytx@stack:~$ # way too much to list here
If for whatever reason you are unsatisfied and/or need to remove MacPorts:
to completely uninstall MacPorts
goodytx@stack:~$
goodytx@stack:~$ sudo port -dfp uninstall --follow-dependencies installed
goodytx@stack:~$ sudo port -dfp uninstall all
goodytx@stack:~$ sudo rm -rf /opt/local
goodytx@stack:~$ sudo rm -rf /Library/Tcl/macports*
goodytx@stack:~$
goodytx@stack:~$ # if you also want to delete any stand-alone gui applications you've built with macports, then there is one more command:
goodytx@stack:~$
goodytx@stack:~$ sudo rm -rf /Applications/MacPorts
goodytx@stack:~$
Best Answer
Ok, I have been combing the web for a similar solution as I really find Photos a poor replacement for Aperture.
This is an AppleScript script I put together based on various bits picked from similar questions but which they didn't do exactly what I needed. I can tell you that this one works with OS X El Capitan, Apple Photos and my 70 GB of pics and videos, I added a few error checking steps, it might be done more elegantly so any feedback more than welcomed. The reason it has the logic for picking albums based on the name is that otherwise the routine would go through all the albums, including default ones and export everything. I do use YYYY as start of each album so it is easy to select which ones I want to export. Possibly you can look for how to check for the parent folder or some other logic to ensure the script iterates over the right ones.