How to add mandatory Photo Sphere meta data to an equirectangular image (Photoshop CC 2014)

Preface

Some information on this post is outdated! Google Views has been migrated to Google Maps / Google Streeet View. Outdated information has been struck through.

Last year Google added a new feature to their set of web based applications. Publishing geo located spherical panoramas (aka Photo Spheres) on Views.

In another article, Markus already described the complete workflow which is needed to publish a panoramic image on Views and embed it into your website.

I already described different methods of adding mandatory Photo Sphere meta data to an equirectangular image in a second article. One of the methods described a custom meta data panel which could be used within Photoshop CS6 and Photoshop CC to read and write the photosphere meta data.

As Adobe changed their specification for creating meta data panels for Photoshop CC 2014, I redid the description…

Note for downloading the XML files

Depending on your browser it could be the best option to click the XML download link and use the context menu to save the link as XML to your local computer!

Custom photo sphere meta data panel for Photoshop CC 2014

First you have to identify the proper location for the File Panels. On a Windows system running PS CC 2014 the files are located in

C:\Users\[Username]\AppData\Roaming\Adobe\XMP\Metadata Extensions

or directly using the appropriate environment variable:

%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions

PS CC 2014 running on Mac OS uses the following location

[Username]/Library/Application Support/Adobe/XMP/Metadata Extensions

Navigate to the location and create a sub directory named

Photosphere

with two subdirectories named

schema

and

view

Change to the newly created directory ‘Photosphere’ and create a file named

manifest.xml

with the following content (or download the file here):

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2014 by Jürgen Matern (/author/juergen/)
 
This file is licensed under the Creative Commons Attribution ShareAlike 3.0
License (http://creativecommons.org/licenses/by-sa/3.0/).
 
In short: you are free to share and make derivative works of the file under
the conditions that you appropriately attribute it and that you distribute
it only under a license identical to this one.
 
Photosphere File Info Panel (manifest.xml)	
-->
<extension xmlns="http://ns.adobe.com/metadata/extension/1.0/"
   name="Photosphere"
   version="1.0"
   locFilePrefix="photosphere">
</extension>

Change to the newly created directory ‘schema’ and create a file named

photosphereSchema.xml

with the following content (or download the file here):

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2014 by Jürgen Matern (/author/juergen/)
 
This file is licensed under the Creative Commons Attribution ShareAlike 3.0
License (http://creativecommons.org/licenses/by-sa/3.0/).
 
In short: you are free to share and make derivative works of the file under
the conditions that you appropriately attribute it and that you distribute
it only under a license identical to this one.
 
Photosphere File Info Panel (photosphereSchema.xml)	
-->
<xmp_definitions>
  <!-- Defining the namespace and prefix of the schema --> 	
	<xmp_schema prefix='GPano' namespace='http://ns.google.com/photos/1.0/panorama/' label='Photosphere' description='Properties for Photospheres'>
 
		<!-- Defining the properties -->
		<xmp_property name='StitchingSoftware' category='external' type='openchoice' element_type='text' label='Stitching Software:' description='The software which created the panorama.'>
			<xmp_choice raw_value='PTGui Pro 10.0.10' label='PTGui Pro 10.0.10'/>
			<xmp_choice raw_value='PTGui 10.0.10' label='PTGui 10.0.10'/>
			<xmp_choice raw_value='Hugin' label='Hugin'/>
		</xmp_property>
 
		<xmp_property name='ProjectionType' category='external' type='closedchoice' element_type='text' label='Pano Projection:' description='Currently Google applications only support equirectangular projection.' >
			<xmp_choice raw_value='equirectangular' label='equirectangular'/>
			<xmp_choice raw_value='' label='none specified'/>
		</xmp_property>
 
		<xmp_property name='UsePanoramaViewer' category='external' type='boolean' label='Use Panorama Viewer:' description='Set this value if the image should show as photosphere.' />
		<xmp_property name='PoseHeadingDegrees' category='external' type='real' label='Heading:' description='This field is only mandatory for Google Maps. It is the direction in the middle of the image in degrees. North=0, East=90, South=180, West=270. See [GPS].' />
		<xmp_property name='CroppedAreaImageWidthPixels' category='external' type='integer'  label='Cropped Area Image Width:' description='For full spheres the same as Full Pano Width and width of the image in pixels (see [Image Size] further down).'/>
		<xmp_property name='CroppedAreaImageHeightPixels' category='external' type='integer' label='Cropped Image Heigth:' description='For full spheres the same as Full Pano heigth and height of the image in pixels (see [Image Size] further down).'/>
		<xmp_property name='FullPanoWidthPixels' category='external' type='integer' label='Full Pano Width:' description='For full spheres this equals to the height of the image in pixels (see [Image Size] further down).'/>
		<xmp_property name='FullPanoHeightPixels' category='external' type='integer'  label='Full Pano Heigth:' description='For full spheres this equals to the height of the image in pixels (see [Image Size] further down).'/>
		<xmp_property name='CroppedAreaLeftPixels' category='external' type='integer' label='Cropped Pixels Left:' description='Set to 0 for full spheres.'/>
		<xmp_property name='CroppedAreaTopPixels' category='external' type='integer' label='Cropped Pixels Top:' description='Set to 0 for full spheres.'/>
		<xmp_property name='SourcePhotosCount' category='external' type='integer' label='Source Photos Count:' description='Number of source image. This value is optional.'/>
		<xmp_property name='FirstPhotoDate' category='external' type='date' label='First Photo Date' description='Date and time of the first image taken.  This value is optional.'/>
		<xmp_property name='LastPhotoDate' category='external' type='date' label='Last Photo Date' description='Date and time of the last image taken.  This value is optional.'/>
	</xmp_schema>		
</xmp_definitions>

Change to the newly created directory ‘view’ and create a file named

photosphereView.xml

with the following content (or download the file here):

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2014 by Jürgen Matern (/author/juergen/)
 
This file is licensed under the Creative Commons Attribution ShareAlike 3.0
License (http://creativecommons.org/licenses/by-sa/3.0/).
 
In short: you are free to share and make derivative works of the file under
the conditions that you appropriately attribute it and that you distribute
it only under a license identical to this one.
 
Photosphere File Info Panel (photosphereView.xml)	
-->
 
<views xmlns="http://ns.adobe.com/metadata/ui/1.0/"> 
	<view
		xmlns:exif="http://ns.adobe.com/exif/1.0/"
		xmlns:GPano='http://ns.google.com/photos/1.0/panorama/' 
		name="Photosphere"
		label="Photosphere"
		description="This view shows the GPano properties and some other values from the EXIF metadata.">
 
		<section label="Photosphere" type="labelled">
			<property name='GPano:StitchingSoftware' />
			<property name='GPano:ProjectionType' />
			<property name='GPano:UsePanoramaViewer' />
			<property name='GPano:PoseHeadingDegrees' />
			<property name='GPano:CroppedAreaImageWidthPixels' />
			<property name='GPano:CroppedAreaImageHeightPixels' />
			<property name='GPano:FullPanoWidthPixels' />
			<property name='GPano:FullPanoHeightPixels' />
			<property name='GPano:CroppedAreaLeftPixels' />
			<property name='GPano:CroppedAreaTopPixels' />
			<property name='GPano:SourcePhotosCount' />
			<property name='GPano:FirstPhotoDate' />
			<property name='GPano:LastPhotoDate' />
		</section>
		<section label="Image Size" type="labelled">
			<property name="exif:PixelXDimension"/>
			<property name="exif:PixelYDimension"/>
		</section>
		<section label="GPS" type="labelled">
			<property name='exif:GPSLongitude' />
			<property name='exif:GPSLatitude' />
			<property name='exif:GPSAltitude' />
			<property name='exif:GPSImgDirection' />
			<property name='exif:GPSDestLongitude' />
			<property name='exif:GPSDestLatitude' />
		</section>
	</view>		
</views>

The properties ‘SourcePhotosCount’, ‘FirstPhotoDate’ and ‘LastPhotoDate’ are optional values for a photosphere.

Then open the file info dialog of Photoshop CC 2014. When all the meta data is missing, the new panel looks like this on a german installation:
Custom file info panel within Photoshop CC 2014, empty
And the following screenshot shows the panel, when the meta data fields are already populated.
Custom file info panel within Photoshop CC 2014, populated 

Related Posts
The Maritime Museum has been established in 1873 by Prince Henry of the Netherlands. Sometimes it is also named after its founder: Prince Hendrik Museum. Prince Hendrik himself had a naval career.


READ MORE
A panorama showing mostly panographers taking panoramas.
READ MORE
This panorama shows the interior of the Roland Levinsky building.
READ MORE
This panorama shows a view in the harbour of Plymouth.
READ MORE
This imge shows a Droste type reprojection of the Piața Unirii in Timișoara, Romania.


READ MORE
This is a Pecha Kucha presentation about reprojecting equirectangular images.

READ MORE
This article presents new versions of some Pixel Bender and Mathmap scripts with which you can apply a Droste effect to images. The changes to the older versions of the scripts are, that you are now able to use the same parameters on both scripting engines.

READ MORE
Panographers making panoramas on Haytor.
READ MORE
This central place in the heart ot Rotterdam is 12.250 square meters in size and has been opened to the public in 1996. The illumination consists of very large street lights, that even can be transformed.


READ MORE
This spherical panorama shows a bridge over two small canals in Venice, Italy.


READ MORE
Cranes in the Maritime Museum in Rotterdam; The
Postbridge On The Bridge
Plymouth University Roland Levinsky Building
Plymouth Harbour Fish Sculpture Shadow
Reprojected Piața Unirii in Timișoara, Romania
Reprojecting equirectangular images
Reprojecting equirectangular images for a printed presentation –
Haytor Panographers
Schouwburgplein in Rotterdam; The Netherlands
Bridge over Rio Malpaga at Rio de le

Author: PanoTwin Jürgen

PanoTwin Jürgen → My Google+ Profile

6 thoughts on “How to add mandatory Photo Sphere meta data to an equirectangular image (Photoshop CC 2014)”

    1. Yes, we both use this version since it came out. However one minor problem is, that this does not work (yet) for PSD or PSB output. And also it is quite convenient to check the information directly from PS. Or be able to add the information – especially for older work.

  1. Hello!

    Thank you for this useful solution!

    I was hoping the panel would show up in Bridge CC 2014, too, but that’s not the case. Is it a matter of simply copying the files to another location for Bridge or is a different code necessary?

    Bye, Oliver

  2. I followed these instructions for photoshop cc 2015 but when I open the file info panels, there isn’t anything related to photoshphere. Is there something else I need to do to get ps to recognize the custom file info panel?

    1. The directory structure (on a PC) should look like this:

      %USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere
      %USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\schema
      %USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\view

      The files should be:

      %USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\manifest.xml
      %USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\schema\photosphereSchema.xml
      %USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\view\photosphereView.xml

      At least with these files it works with my Photoshop CC 2015 installation.

Leave a Reply

Your email address will not be published. Required fields are marked *